<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- | Pretty print LLVM IR Code.</span><span>
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
</span><span id="line-7"></span><span>
</span><span id="line-8"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Llvm.Ppr</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-9"></span><span>
</span><span id="line-10"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Top level LLVM objects.</span></span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmModule"><span class="hs-identifier">ppLlvmModule</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmComments"><span class="hs-identifier">ppLlvmComments</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmComment"><span class="hs-identifier">ppLlvmComment</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmGlobals"><span class="hs-identifier">ppLlvmGlobals</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmGlobal"><span class="hs-identifier">ppLlvmGlobal</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmAliases"><span class="hs-identifier">ppLlvmAliases</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmAlias"><span class="hs-identifier">ppLlvmAlias</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmMetas"><span class="hs-identifier">ppLlvmMetas</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmMeta"><span class="hs-identifier">ppLlvmMeta</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-20"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecls"><span class="hs-identifier">ppLlvmFunctionDecls</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecl"><span class="hs-identifier">ppLlvmFunctionDecl</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctions"><span class="hs-identifier">ppLlvmFunctions</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunction"><span class="hs-identifier">ppLlvmFunction</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>
</span><span id="line-25"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier">ppVar</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-26"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier">ppLit</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-27"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier">ppTypeLit</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier">ppName</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-29"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier">ppPlainName</span></a></span><span>
</span><span id="line-30"></span><span>
</span><span id="line-31"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html"><span class="hs-identifier">GHC.Llvm.Syntax</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Llvm.MetaData.html"><span class="hs-identifier">GHC.Llvm.MetaData</span></a></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html"><span class="hs-identifier">GHC.Llvm.Types</span></a></span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Int.html#"><span class="hs-identifier">Data.Int</span></a></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier">intersperse</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-46"></span><span>
</span><span id="line-47"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-48"></span><span class="hs-comment">-- * Top Level Print functions</span><span>
</span><span id="line-49"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-50"></span><span>
</span><span id="line-51"></span><span class="hs-comment">-- | Print out a whole LLVM module.</span><span>
</span><span id="line-52"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmModule"><span class="hs-identifier hs-type">ppLlvmModule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmModule"><span class="hs-identifier hs-type">LlvmModule</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-53"></span><span id="ppLlvmModule"><span class="annot"><span class="annottext">ppLlvmModule :: LlvmOpts -&gt; LlvmModule -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmModule"><span class="hs-identifier hs-var hs-var">ppLlvmModule</span></a></span></span><span> </span><span id="local-6989586621681006965"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006965"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmModule"><span class="hs-identifier hs-type">LlvmModule</span></a></span><span> </span><span id="local-6989586621681006963"><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006963"><span class="hs-identifier hs-var">comments</span></a></span></span><span> </span><span id="local-6989586621681006962"><span class="annot"><span class="annottext">[LlvmAlias]
</span><a href="#local-6989586621681006962"><span class="hs-identifier hs-var">aliases</span></a></span></span><span> </span><span id="local-6989586621681006961"><span class="annot"><span class="annottext">[MetaDecl]
</span><a href="#local-6989586621681006961"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span id="local-6989586621681006960"><span class="annot"><span class="annottext">[LMGlobal]
</span><a href="#local-6989586621681006960"><span class="hs-identifier hs-var">globals</span></a></span></span><span> </span><span id="local-6989586621681006959"><span class="annot"><span class="annottext">LlvmFunctionDecls
</span><a href="#local-6989586621681006959"><span class="hs-identifier hs-var">decls</span></a></span></span><span> </span><span id="local-6989586621681006958"><span class="annot"><span class="annottext">LlvmFunctions
</span><a href="#local-6989586621681006958"><span class="hs-identifier hs-var">funcs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-54"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LMString] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmComments"><span class="hs-identifier hs-var">ppLlvmComments</span></a></span><span> </span><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006963"><span class="hs-identifier hs-var">comments</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-55"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmAlias] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmAliases"><span class="hs-identifier hs-var">ppLlvmAliases</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmAlias]
</span><a href="#local-6989586621681006962"><span class="hs-identifier hs-var">aliases</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-56"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [MetaDecl] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmMetas"><span class="hs-identifier hs-var">ppLlvmMetas</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006965"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaDecl]
</span><a href="#local-6989586621681006961"><span class="hs-identifier hs-var">meta</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-57"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [LMGlobal] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmGlobals"><span class="hs-identifier hs-var">ppLlvmGlobals</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006965"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[LMGlobal]
</span><a href="#local-6989586621681006960"><span class="hs-identifier hs-var">globals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-58"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecls -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecls"><span class="hs-identifier hs-var">ppLlvmFunctionDecls</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecls
</span><a href="#local-6989586621681006959"><span class="hs-identifier hs-var">decls</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-59"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmFunctions -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctions"><span class="hs-identifier hs-var">ppLlvmFunctions</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006965"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctions
</span><a href="#local-6989586621681006958"><span class="hs-identifier hs-var">funcs</span></a></span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span class="hs-comment">-- | Print out a multi-line comment, can be inside a function or on its own</span><span>
</span><span id="line-62"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmComments"><span class="hs-identifier hs-type">ppLlvmComments</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LMString"><span class="hs-identifier hs-type">LMString</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-63"></span><span id="ppLlvmComments"><span class="annot"><span class="annottext">ppLlvmComments :: [LMString] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmComments"><span class="hs-identifier hs-var hs-var">ppLlvmComments</span></a></span></span><span> </span><span id="local-6989586621681006955"><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006955"><span class="hs-identifier hs-var">comments</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LMString -&gt; SDoc) -&gt; [LMString] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmComment"><span class="hs-identifier hs-var">ppLlvmComment</span></a></span><span> </span><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006955"><span class="hs-identifier hs-var">comments</span></a></span><span>
</span><span id="line-64"></span><span>
</span><span id="line-65"></span><span class="hs-comment">-- | Print out a comment, can be inside a function or on its own</span><span>
</span><span id="line-66"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmComment"><span class="hs-identifier hs-type">ppLlvmComment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LMString"><span class="hs-identifier hs-type">LMString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-67"></span><span id="ppLlvmComment"><span class="annot"><span class="annottext">ppLlvmComment :: LMString -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmComment"><span class="hs-identifier hs-var hs-var">ppLlvmComment</span></a></span></span><span> </span><span id="local-6989586621681006953"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006953"><span class="hs-identifier hs-var">com</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006953"><span class="hs-identifier hs-var">com</span></a></span><span>
</span><span id="line-68"></span><span>
</span><span id="line-69"></span><span>
</span><span id="line-70"></span><span class="hs-comment">-- | Print out a list of global mutable variable definitions</span><span>
</span><span id="line-71"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmGlobals"><span class="hs-identifier hs-type">ppLlvmGlobals</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobal"><span class="hs-identifier hs-type">LMGlobal</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-72"></span><span id="ppLlvmGlobals"><span class="annot"><span class="annottext">ppLlvmGlobals :: LlvmOpts -&gt; [LMGlobal] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmGlobals"><span class="hs-identifier hs-var hs-var">ppLlvmGlobals</span></a></span></span><span> </span><span id="local-6989586621681006949"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006949"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006948"><span class="annot"><span class="annottext">[LMGlobal]
</span><a href="#local-6989586621681006948"><span class="hs-identifier hs-var">ls</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LMGlobal -&gt; SDoc) -&gt; [LMGlobal] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LMGlobal -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmGlobal"><span class="hs-identifier hs-var">ppLlvmGlobal</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006949"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LMGlobal]
</span><a href="#local-6989586621681006948"><span class="hs-identifier hs-var">ls</span></a></span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span><span class="hs-comment">-- | Print out a global mutable variable definition</span><span>
</span><span id="line-75"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmGlobal"><span class="hs-identifier hs-type">ppLlvmGlobal</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobal"><span class="hs-identifier hs-type">LMGlobal</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-76"></span><span id="ppLlvmGlobal"><span class="annot"><span class="annottext">ppLlvmGlobal :: LlvmOpts -&gt; LMGlobal -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmGlobal"><span class="hs-identifier hs-var hs-var">ppLlvmGlobal</span></a></span></span><span> </span><span id="local-6989586621681006947"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006947"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobal"><span class="hs-identifier hs-type">LMGlobal</span></a></span><span> </span><span id="local-6989586621681006945"><span class="annot"><span class="annottext">var :: LlvmVar
</span><a href="#local-6989586621681006945"><span class="hs-identifier hs-var">var</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobalVar"><span class="hs-identifier hs-type">LMGlobalVar</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681006943"><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006943"><span class="hs-identifier hs-var">link</span></a></span></span><span> </span><span id="local-6989586621681006942"><span class="annot"><span class="annottext">LMSection
</span><a href="#local-6989586621681006942"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621681006941"><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006941"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621681006940"><span class="annot"><span class="annottext">LMConst
</span><a href="#local-6989586621681006940"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681006939"><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="#local-6989586621681006939"><span class="hs-identifier hs-var">dat</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-77"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006938"><span class="annot"><span class="annottext">sect :: SDoc
</span><a href="#local-6989586621681006938"><span class="hs-identifier hs-var hs-var">sect</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LMSection
</span><a href="#local-6989586621681006942"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-78"></span><span>            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006937"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006937"><span class="hs-identifier hs-var">x'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, section&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006937"><span class="hs-identifier hs-var">x'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-79"></span><span>            </span><span class="annot"><span class="annottext">LMSection
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-80"></span><span>
</span><span id="line-81"></span><span>        </span><span id="local-6989586621681006933"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006933"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006941"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-82"></span><span>            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006932"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006932"><span class="hs-identifier hs-var">a'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, align&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006932"><span class="hs-identifier hs-var">a'</span></a></span><span>
</span><span id="line-83"></span><span>            </span><span class="annot"><span class="annottext">LMAlign
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span>        </span><span id="local-6989586621681006929"><span class="annot"><span class="annottext">rhs :: SDoc
</span><a href="#local-6989586621681006929"><span class="hs-identifier hs-var hs-var">rhs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="#local-6989586621681006939"><span class="hs-identifier hs-var">dat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-86"></span><span>            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006928"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006928"><span class="hs-identifier hs-var">stat</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#pprSpecialStatic"><span class="hs-identifier hs-var">pprSpecialStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006947"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006928"><span class="hs-identifier hs-var">stat</span></a></span><span>
</span><span id="line-87"></span><span>            </span><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType) -&gt; LlvmType -&gt; LlvmType
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006945"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-88"></span><span>
</span><span id="line-89"></span><span>        </span><span class="hs-comment">-- Position of linkage is different for aliases.</span><span>
</span><span id="line-90"></span><span>        </span><span id="local-6989586621681006923"><span class="annot"><span class="annottext">const :: String
</span><a href="#local-6989586621681006923"><span class="hs-identifier hs-var hs-var">const</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LMConst
</span><a href="#local-6989586621681006940"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-91"></span><span>          </span><span class="annot"><span class="annottext">LMConst
</span><a href="GHC.Llvm.Types.html#Global"><span class="hs-identifier hs-var">Global</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;global&quot;</span></span><span>
</span><span id="line-92"></span><span>          </span><span class="annot"><span class="annottext">LMConst
</span><a href="GHC.Llvm.Types.html#Constant"><span class="hs-identifier hs-var">Constant</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;constant&quot;</span></span><span>
</span><span id="line-93"></span><span>          </span><span class="annot"><span class="annottext">LMConst
</span><a href="GHC.Llvm.Types.html#Alias"><span class="hs-identifier hs-var">Alias</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;alias&quot;</span></span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAssignment"><span class="hs-identifier hs-var">ppAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006947"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006945"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006943"><span class="hs-identifier hs-var">link</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681006923"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006929"><span class="hs-identifier hs-var">rhs</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006938"><span class="hs-identifier hs-var">sect</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006933"><span class="hs-identifier hs-var">align</span></a></span><span>
</span><span id="line-96"></span><span>       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmGlobal"><span class="hs-identifier hs-var">ppLlvmGlobal</span></a></span><span> </span><span id="local-6989586621681006917"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006917"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobal"><span class="hs-identifier hs-type">LMGlobal</span></a></span><span> </span><span id="local-6989586621681006916"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006916"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621681006915"><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="#local-6989586621681006915"><span class="hs-identifier hs-var">val</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; SDoc
forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ppLlvmGlobal&quot;</span></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-99"></span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Non Global var ppr as global! &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006917"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006916"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe SDoc -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmStatic -&gt; SDoc) -&gt; Maybe LlvmStatic -&gt; Maybe SDoc
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006917"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="#local-6989586621681006915"><span class="hs-identifier hs-var">val</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">-- | Print out a list of LLVM type aliases.</span><span>
</span><span id="line-103"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmAliases"><span class="hs-identifier hs-type">ppLlvmAliases</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmAlias"><span class="hs-identifier hs-type">LlvmAlias</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-104"></span><span id="ppLlvmAliases"><span class="annot"><span class="annottext">ppLlvmAliases :: [LlvmAlias] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmAliases"><span class="hs-identifier hs-var hs-var">ppLlvmAliases</span></a></span></span><span> </span><span id="local-6989586621681006912"><span class="annot"><span class="annottext">[LlvmAlias]
</span><a href="#local-6989586621681006912"><span class="hs-identifier hs-var">tys</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmAlias -&gt; SDoc) -&gt; [LlvmAlias] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAlias -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmAlias"><span class="hs-identifier hs-var">ppLlvmAlias</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmAlias]
</span><a href="#local-6989586621681006912"><span class="hs-identifier hs-var">tys</span></a></span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span class="hs-comment">-- | Print out an LLVM type alias.</span><span>
</span><span id="line-107"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmAlias"><span class="hs-identifier hs-type">ppLlvmAlias</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmAlias"><span class="hs-identifier hs-type">LlvmAlias</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-108"></span><span id="ppLlvmAlias"><span class="annot"><span class="annottext">ppLlvmAlias :: LlvmAlias -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmAlias"><span class="hs-identifier hs-var hs-var">ppLlvmAlias</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681006911"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006911"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681006910"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006910"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006911"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;type&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006910"><span class="hs-identifier hs-var">ty</span></a></span><span>
</span><span id="line-110"></span><span>
</span><span id="line-111"></span><span>
</span><span id="line-112"></span><span class="hs-comment">-- | Print out a list of LLVM metadata.</span><span>
</span><span id="line-113"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmMetas"><span class="hs-identifier hs-type">ppLlvmMetas</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaDecl"><span class="hs-identifier hs-type">MetaDecl</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-114"></span><span id="ppLlvmMetas"><span class="annot"><span class="annottext">ppLlvmMetas :: LlvmOpts -&gt; [MetaDecl] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmMetas"><span class="hs-identifier hs-var hs-var">ppLlvmMetas</span></a></span></span><span> </span><span id="local-6989586621681006907"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006907"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006906"><span class="annot"><span class="annottext">[MetaDecl]
</span><a href="#local-6989586621681006906"><span class="hs-identifier hs-var">metas</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(MetaDecl -&gt; SDoc) -&gt; [MetaDecl] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaDecl -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmMeta"><span class="hs-identifier hs-var">ppLlvmMeta</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006907"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[MetaDecl]
</span><a href="#local-6989586621681006906"><span class="hs-identifier hs-var">metas</span></a></span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span class="hs-comment">-- | Print out an LLVM metadata definition.</span><span>
</span><span id="line-117"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmMeta"><span class="hs-identifier hs-type">ppLlvmMeta</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaDecl"><span class="hs-identifier hs-type">MetaDecl</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-118"></span><span id="ppLlvmMeta"><span class="annot"><span class="annottext">ppLlvmMeta :: LlvmOpts -&gt; MetaDecl -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmMeta"><span class="hs-identifier hs-var hs-var">ppLlvmMeta</span></a></span></span><span> </span><span id="local-6989586621681006905"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006905"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaUnnamed"><span class="hs-identifier hs-type">MetaUnnamed</span></a></span><span> </span><span id="local-6989586621681006903"><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006903"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681006902"><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006902"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">MetaId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006903"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var">ppMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006905"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006902"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmMeta"><span class="hs-identifier hs-var">ppLlvmMeta</span></a></span><span> </span><span id="local-6989586621681006900"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006900"><span class="hs-identifier hs-var">_opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaNamed"><span class="hs-identifier hs-type">MetaNamed</span></a></span><span> </span><span id="local-6989586621681006898"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006898"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681006897"><span class="annot"><span class="annottext">[MetaId]
</span><a href="#local-6989586621681006897"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var">exclamation</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006898"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var">exclamation</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006894"><span class="hs-identifier hs-var">nodes</span></a></span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-124"></span><span>    </span><span id="local-6989586621681006894"><span class="annot"><span class="annottext">nodes :: SDoc
</span><a href="#local-6989586621681006894"><span class="hs-identifier hs-var hs-var">nodes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier hs-var">intersperse</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(MetaId -&gt; SDoc) -&gt; [MetaId] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">MetaId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaId]
</span><a href="#local-6989586621681006897"><span class="hs-identifier hs-var">m</span></a></span><span>
</span><span id="line-125"></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span class="hs-comment">-- | Print out a list of function definitions.</span><span>
</span><span id="line-128"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctions"><span class="hs-identifier hs-type">ppLlvmFunctions</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmFunctions"><span class="hs-identifier hs-type">LlvmFunctions</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-129"></span><span id="ppLlvmFunctions"><span class="annot"><span class="annottext">ppLlvmFunctions :: LlvmOpts -&gt; LlvmFunctions -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctions"><span class="hs-identifier hs-var hs-var">ppLlvmFunctions</span></a></span></span><span> </span><span id="local-6989586621681006890"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006890"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006889"><span class="annot"><span class="annottext">LlvmFunctions
</span><a href="#local-6989586621681006889"><span class="hs-identifier hs-var">funcs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmFunction -&gt; SDoc) -&gt; LlvmFunctions -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmFunction -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunction"><span class="hs-identifier hs-var">ppLlvmFunction</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006890"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LlvmFunctions
</span><a href="#local-6989586621681006889"><span class="hs-identifier hs-var">funcs</span></a></span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-comment">-- | Print out a function definition.</span><span>
</span><span id="line-132"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunction"><span class="hs-identifier hs-type">ppLlvmFunction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmFunction"><span class="hs-identifier hs-type">LlvmFunction</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-133"></span><span id="ppLlvmFunction"><span class="annot"><span class="annottext">ppLlvmFunction :: LlvmOpts -&gt; LlvmFunction -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunction"><span class="hs-identifier hs-var hs-var">ppLlvmFunction</span></a></span></span><span> </span><span id="local-6989586621681006888"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006888"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006887"><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-134"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006884"><span class="annot"><span class="annottext">attrDoc :: SDoc
</span><a href="#local-6989586621681006884"><span class="hs-identifier hs-var hs-var">attrDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LlvmFuncAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmFunction -&gt; [LlvmFuncAttr]
</span><a href="GHC.Llvm.Syntax.html#funcAttrs"><span class="hs-identifier hs-var hs-var">funcAttrs</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-135"></span><span>        </span><span id="local-6989586621681006881"><span class="annot"><span class="annottext">secDoc :: SDoc
</span><a href="#local-6989586621681006881"><span class="hs-identifier hs-var hs-var">secDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmFunction -&gt; LMSection
</span><a href="GHC.Llvm.Syntax.html#funcSect"><span class="hs-identifier hs-var hs-var">funcSect</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-136"></span><span>                      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006879"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006879"><span class="hs-identifier hs-var">s'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;section&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006879"><span class="hs-identifier hs-var">s'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>                      </span><span class="annot"><span class="annottext">LMSection
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-138"></span><span>        </span><span id="local-6989586621681006878"><span class="annot"><span class="annottext">prefixDoc :: SDoc
</span><a href="#local-6989586621681006878"><span class="hs-identifier hs-var hs-var">prefixDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmFunction -&gt; Maybe LlvmStatic
</span><a href="GHC.Llvm.Syntax.html#funcPrefix"><span class="hs-identifier hs-var hs-var">funcPrefix</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-139"></span><span>                        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006876"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006876"><span class="hs-identifier hs-var">v</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;prefix&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006888"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006876"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-140"></span><span>                        </span><span class="annot"><span class="annottext">Maybe LlvmStatic
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-141"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;define&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl -&gt; [LMString] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionHeader"><span class="hs-identifier hs-var">ppLlvmFunctionHeader</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmFunction -&gt; LlvmFunctionDecl
</span><a href="GHC.Llvm.Syntax.html#funcDecl"><span class="hs-identifier hs-var hs-var">funcDecl</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmFunction -&gt; [LMString]
</span><a href="GHC.Llvm.Syntax.html#funcArgs"><span class="hs-identifier hs-var hs-var">funcArgs</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-142"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006884"><span class="hs-identifier hs-var">attrDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006881"><span class="hs-identifier hs-var">secDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006878"><span class="hs-identifier hs-var">prefixDoc</span></a></span><span>
</span><span id="line-143"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lbrace"><span class="hs-identifier hs-var">lbrace</span></a></span><span>
</span><span id="line-144"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmBlocks -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlocks"><span class="hs-identifier hs-var">ppLlvmBlocks</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006888"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmFunction -&gt; LlvmBlocks
</span><a href="GHC.Llvm.Syntax.html#funcBody"><span class="hs-identifier hs-var hs-var">funcBody</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunction
</span><a href="#local-6989586621681006887"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-145"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rbrace"><span class="hs-identifier hs-var">rbrace</span></a></span><span>
</span><span id="line-146"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-147"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-148"></span><span>
</span><span id="line-149"></span><span class="hs-comment">-- | Print out a function definition header.</span><span>
</span><span id="line-150"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionHeader"><span class="hs-identifier hs-type">ppLlvmFunctionHeader</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecl"><span class="hs-identifier hs-type">LlvmFunctionDecl</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LMString"><span class="hs-identifier hs-type">LMString</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-151"></span><span id="ppLlvmFunctionHeader"><span class="annot"><span class="annottext">ppLlvmFunctionHeader :: LlvmFunctionDecl -&gt; [LMString] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionHeader"><span class="hs-identifier hs-var hs-var">ppLlvmFunctionHeader</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecl"><span class="hs-identifier hs-type">LlvmFunctionDecl</span></a></span><span> </span><span id="local-6989586621681006867"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006867"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681006866"><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006866"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681006865"><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006865"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681006864"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006864"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621681006863"><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006863"><span class="hs-identifier hs-var">varg</span></a></span></span><span> </span><span id="local-6989586621681006862"><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006862"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621681006861"><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006861"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621681006860"><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006860"><span class="hs-identifier hs-var">args</span></a></span></span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006857"><span class="annot"><span class="annottext">varg' :: PtrString
</span><a href="#local-6989586621681006857"><span class="hs-identifier hs-var hs-var">varg'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006863"><span class="hs-identifier hs-var">varg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-153"></span><span>                      </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="GHC.Llvm.Types.html#VarArgs"><span class="hs-identifier hs-var">VarArgs</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[LlvmParameter] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006862"><span class="hs-identifier hs-var">p</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;...&quot;</span></span><span>
</span><span id="line-154"></span><span>                              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, ...&quot;</span></span><span>
</span><span id="line-155"></span><span>                      </span><span id="local-6989586621681006853"><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006853"><span class="hs-identifier hs-var">_otherwise</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span>
</span><span id="line-156"></span><span>        </span><span id="local-6989586621681006851"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006851"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006861"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-157"></span><span>                     </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006850"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006850"><span class="hs-identifier hs-var">a'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; align &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006850"><span class="hs-identifier hs-var">a'</span></a></span><span>
</span><span id="line-158"></span><span>                     </span><span class="annot"><span class="annottext">LMAlign
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-159"></span><span>        </span><span id="local-6989586621681006847"><span class="annot"><span class="annottext">args' :: [SDoc]
</span><a href="#local-6989586621681006847"><span class="hs-identifier hs-var hs-var">args'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((LlvmParameter, LMString) -&gt; SDoc)
-&gt; [(LlvmParameter, LMString)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span class="hs-special">(</span><span id="local-6989586621681006846"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006846"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681006845"><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006845"><span class="hs-identifier hs-var">p</span></a></span></span><span class="hs-special">)</span><span class="hs-special">,</span><span id="local-6989586621681006844"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006844"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006846"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006845"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span>
</span><span id="line-160"></span><span>                                    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006844"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-161"></span><span>                    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[LlvmParameter] -&gt; [LMString] -&gt; [(LlvmParameter, LMString)]
forall a b. [a] -&gt; [b] -&gt; [(a, b)]
</span><a href="../../base/src/GHC.List.html#zip"><span class="hs-identifier hs-var">zip</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006862"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006860"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006866"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006865"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006864"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006867"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-163"></span><span>        </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621681006847"><span class="hs-identifier hs-var">args'</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006857"><span class="hs-identifier hs-var">varg'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006851"><span class="hs-identifier hs-var">align</span></a></span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span class="hs-comment">-- | Print out a list of function declaration.</span><span>
</span><span id="line-166"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecls"><span class="hs-identifier hs-type">ppLlvmFunctionDecls</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecls"><span class="hs-identifier hs-type">LlvmFunctionDecls</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-167"></span><span id="ppLlvmFunctionDecls"><span class="annot"><span class="annottext">ppLlvmFunctionDecls :: LlvmFunctionDecls -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecls"><span class="hs-identifier hs-var hs-var">ppLlvmFunctionDecls</span></a></span></span><span> </span><span id="local-6989586621681006838"><span class="annot"><span class="annottext">LlvmFunctionDecls
</span><a href="#local-6989586621681006838"><span class="hs-identifier hs-var">decs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmFunctionDecl -&gt; SDoc) -&gt; LlvmFunctionDecls -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecl"><span class="hs-identifier hs-var">ppLlvmFunctionDecl</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecls
</span><a href="#local-6989586621681006838"><span class="hs-identifier hs-var">decs</span></a></span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span class="hs-comment">-- | Print out a function declaration.</span><span>
</span><span id="line-170"></span><span class="hs-comment">-- Declarations define the function type but don't define the actual body of</span><span>
</span><span id="line-171"></span><span class="hs-comment">-- the function.</span><span>
</span><span id="line-172"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecl"><span class="hs-identifier hs-type">ppLlvmFunctionDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecl"><span class="hs-identifier hs-type">LlvmFunctionDecl</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-173"></span><span id="ppLlvmFunctionDecl"><span class="annot"><span class="annottext">ppLlvmFunctionDecl :: LlvmFunctionDecl -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmFunctionDecl"><span class="hs-identifier hs-var hs-var">ppLlvmFunctionDecl</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecl"><span class="hs-identifier hs-type">LlvmFunctionDecl</span></a></span><span> </span><span id="local-6989586621681006837"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006837"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621681006836"><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006836"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681006835"><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006835"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681006834"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006834"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621681006833"><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006833"><span class="hs-identifier hs-var">varg</span></a></span></span><span> </span><span id="local-6989586621681006832"><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006832"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621681006831"><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006831"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006829"><span class="annot"><span class="annottext">varg' :: PtrString
</span><a href="#local-6989586621681006829"><span class="hs-identifier hs-var hs-var">varg'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006833"><span class="hs-identifier hs-var">varg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-175"></span><span>                      </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="GHC.Llvm.Types.html#VarArgs"><span class="hs-identifier hs-var">VarArgs</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[LlvmParameter] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006832"><span class="hs-identifier hs-var">p</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;...&quot;</span></span><span>
</span><span id="line-176"></span><span>                              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, ...&quot;</span></span><span>
</span><span id="line-177"></span><span>                      </span><span id="local-6989586621681006828"><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006828"><span class="hs-identifier hs-var">_otherwise</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span>
</span><span id="line-178"></span><span>        </span><span id="local-6989586621681006826"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006826"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><a href="#local-6989586621681006831"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-179"></span><span>                     </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006825"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006825"><span class="hs-identifier hs-var">a'</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; align&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006825"><span class="hs-identifier hs-var">a'</span></a></span><span>
</span><span id="line-180"></span><span>                     </span><span class="annot"><span class="annottext">LMAlign
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-181"></span><span>        </span><span id="local-6989586621681006822"><span class="annot"><span class="annottext">args :: SDoc
</span><a href="#local-6989586621681006822"><span class="hs-identifier hs-var hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intersperse"><span class="hs-identifier hs-var">intersperse</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-182"></span><span>                  </span><span class="annot"><span class="annottext">(LlvmParameter -&gt; SDoc) -&gt; [LlvmParameter] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621681006820"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006820"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621681006819"><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006819"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006820"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006819"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006832"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;declare&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><a href="#local-6989586621681006836"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006835"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006834"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-184"></span><span>        </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006837"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006822"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006829"><span class="hs-identifier hs-var">varg'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006826"><span class="hs-identifier hs-var">align</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span>
</span><span id="line-187"></span><span class="hs-comment">-- | Print out a list of LLVM blocks.</span><span>
</span><span id="line-188"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmBlocks"><span class="hs-identifier hs-type">ppLlvmBlocks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmBlocks"><span class="hs-identifier hs-type">LlvmBlocks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-189"></span><span id="ppLlvmBlocks"><span class="annot"><span class="annottext">ppLlvmBlocks :: LlvmOpts -&gt; LlvmBlocks -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlocks"><span class="hs-identifier hs-var hs-var">ppLlvmBlocks</span></a></span></span><span> </span><span id="local-6989586621681006818"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006818"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006817"><span class="annot"><span class="annottext">LlvmBlocks
</span><a href="#local-6989586621681006817"><span class="hs-identifier hs-var">blocks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmBlock -&gt; SDoc) -&gt; LlvmBlocks -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmBlock -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlock"><span class="hs-identifier hs-var">ppLlvmBlock</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006818"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LlvmBlocks
</span><a href="#local-6989586621681006817"><span class="hs-identifier hs-var">blocks</span></a></span><span>
</span><span id="line-190"></span><span>
</span><span id="line-191"></span><span class="hs-comment">-- | Print out an LLVM block.</span><span>
</span><span id="line-192"></span><span class="hs-comment">-- It must be part of a function definition.</span><span>
</span><span id="line-193"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmBlock"><span class="hs-identifier hs-type">ppLlvmBlock</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmBlock"><span class="hs-identifier hs-type">LlvmBlock</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-194"></span><span id="ppLlvmBlock"><span class="annot"><span class="annottext">ppLlvmBlock :: LlvmOpts -&gt; LlvmBlock -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlock"><span class="hs-identifier hs-var hs-var">ppLlvmBlock</span></a></span></span><span> </span><span id="local-6989586621681006815"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006815"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmBlock"><span class="hs-identifier hs-type">LlvmBlock</span></a></span><span> </span><span id="local-6989586621681006813"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006813"><span class="hs-identifier hs-var">blockId</span></a></span></span><span> </span><span id="local-6989586621681006812"><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006812"><span class="hs-identifier hs-var">stmts</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-195"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006811"><span class="annot"><span class="annottext">isLabel :: LlvmStatement -&gt; Bool
</span><a href="#local-6989586621681006811"><span class="hs-identifier hs-var hs-var">isLabel</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Syntax.html#MkLabel"><span class="hs-identifier hs-type">MkLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-196"></span><span>      </span><span class="annot"><a href="#local-6989586621681006811"><span class="hs-identifier hs-var">isLabel</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatement
</span><span class="hs-identifier">_</span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-197"></span><span>      </span><span class="hs-special">(</span><span id="local-6989586621681006809"><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006809"><span class="hs-identifier hs-var">block</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681006808"><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006808"><span class="hs-identifier hs-var">rest</span></a></span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(LlvmStatement -&gt; Bool)
-&gt; [LlvmStatement] -&gt; ([LlvmStatement], [LlvmStatement])
forall a. (a -&gt; Bool) -&gt; [a] -&gt; ([a], [a])
</span><a href="../../base/src/GHC.List.html#break"><span class="hs-identifier hs-var">break</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatement -&gt; Bool
</span><a href="#local-6989586621681006811"><span class="hs-identifier hs-var">isLabel</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006812"><span class="hs-identifier hs-var">stmts</span></a></span><span>
</span><span id="line-198"></span><span>      </span><span id="local-6989586621681006806"><span class="annot"><span class="annottext">ppRest :: SDoc
</span><a href="#local-6989586621681006806"><span class="hs-identifier hs-var hs-var">ppRest</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006808"><span class="hs-identifier hs-var">rest</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-199"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#MkLabel"><span class="hs-identifier hs-type">MkLabel</span></a></span><span> </span><span id="local-6989586621681006805"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006805"><span class="hs-identifier hs-var">id</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621681006804"><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006804"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmBlock -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlock"><span class="hs-identifier hs-var">ppLlvmBlock</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006815"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; [LlvmStatement] -&gt; LlvmBlock
</span><a href="GHC.Llvm.Syntax.html#LlvmBlock"><span class="hs-identifier hs-var">LlvmBlock</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006805"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006804"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-200"></span><span>        </span><span class="annot"><span class="annottext">[LlvmStatement]
</span><span class="hs-identifier">_</span></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-201"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlockLabel"><span class="hs-identifier hs-var">ppLlvmBlockLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006813"><span class="hs-identifier hs-var">blockId</span></a></span><span>
</span><span id="line-202"></span><span>           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmStatement -&gt; SDoc) -&gt; [LlvmStatement] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatement -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmStatement"><span class="hs-identifier hs-var">ppLlvmStatement</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006815"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmStatement]
</span><a href="#local-6989586621681006809"><span class="hs-identifier hs-var">block</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-203"></span><span>           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var">newLine</span></a></span><span>
</span><span id="line-204"></span><span>           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%2B%24"><span class="hs-operator hs-var">$+$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006806"><span class="hs-identifier hs-var">ppRest</span></a></span><span>
</span><span id="line-205"></span><span>
</span><span id="line-206"></span><span class="hs-comment">-- | Print out an LLVM block label.</span><span>
</span><span id="line-207"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmBlockLabel"><span class="hs-identifier hs-type">ppLlvmBlockLabel</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmBlockId"><span class="hs-identifier hs-type">LlvmBlockId</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-208"></span><span id="ppLlvmBlockLabel"><span class="annot"><span class="annottext">ppLlvmBlockLabel :: Unique -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlockLabel"><span class="hs-identifier hs-var hs-var">ppLlvmBlockLabel</span></a></span></span><span> </span><span id="local-6989586621681006800"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006800"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier hs-var">pprUniqueAlways</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006800"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-209"></span><span>
</span><span id="line-210"></span><span>
</span><span id="line-211"></span><span class="hs-comment">-- | Print out an LLVM statement.</span><span>
</span><span id="line-212"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmStatement"><span class="hs-identifier hs-type">ppLlvmStatement</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmStatement"><span class="hs-identifier hs-type">LlvmStatement</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-213"></span><span id="ppLlvmStatement"><span class="annot"><span class="annottext">ppLlvmStatement :: LlvmOpts -&gt; LlvmStatement -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmStatement"><span class="hs-identifier hs-var hs-var">ppLlvmStatement</span></a></span></span><span> </span><span id="local-6989586621681006797"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006796"><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006796"><span class="hs-identifier hs-var">stmt</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-214"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006795"><span class="annot"><span class="annottext">ind :: SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var hs-var">ind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;  &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-215"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006796"><span class="hs-identifier hs-var">stmt</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-216"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Assignment"><span class="hs-identifier hs-type">Assignment</span></a></span><span>  </span><span id="local-6989586621681006793"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006793"><span class="hs-identifier hs-var">dst</span></a></span></span><span> </span><span id="local-6989586621681006792"><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006792"><span class="hs-identifier hs-var">expr</span></a></span></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAssignment"><span class="hs-identifier hs-var">ppAssignment</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006793"><span class="hs-identifier hs-var">dst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmExpression"><span class="hs-identifier hs-var">ppLlvmExpression</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006792"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-217"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Fence"><span class="hs-identifier hs-type">Fence</span></a></span><span>       </span><span id="local-6989586621681006789"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006789"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span id="local-6989586621681006788"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006788"><span class="hs-identifier hs-var">ord</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppFence"><span class="hs-identifier hs-var">ppFence</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006789"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006788"><span class="hs-identifier hs-var">ord</span></a></span><span>
</span><span id="line-218"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Branch"><span class="hs-identifier hs-type">Branch</span></a></span><span>      </span><span id="local-6989586621681006785"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006785"><span class="hs-identifier hs-var">target</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppBranch"><span class="hs-identifier hs-var">ppBranch</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006785"><span class="hs-identifier hs-var">target</span></a></span><span>
</span><span id="line-219"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#BranchIf"><span class="hs-identifier hs-type">BranchIf</span></a></span><span>    </span><span id="local-6989586621681006782"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006782"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681006781"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006781"><span class="hs-identifier hs-var">ifT</span></a></span></span><span> </span><span id="local-6989586621681006780"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006780"><span class="hs-identifier hs-var">ifF</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppBranchIf"><span class="hs-identifier hs-var">ppBranchIf</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006782"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006781"><span class="hs-identifier hs-var">ifT</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006780"><span class="hs-identifier hs-var">ifF</span></a></span><span>
</span><span id="line-220"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Comment"><span class="hs-identifier hs-type">Comment</span></a></span><span>     </span><span id="local-6989586621681006777"><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006777"><span class="hs-identifier hs-var">comments</span></a></span></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[LMString] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmComments"><span class="hs-identifier hs-var">ppLlvmComments</span></a></span><span> </span><span class="annot"><span class="annottext">[LMString]
</span><a href="#local-6989586621681006777"><span class="hs-identifier hs-var">comments</span></a></span><span>
</span><span id="line-221"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#MkLabel"><span class="hs-identifier hs-type">MkLabel</span></a></span><span>     </span><span id="local-6989586621681006776"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006776"><span class="hs-keyword hs-var">label</span></a></span></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmBlockLabel"><span class="hs-identifier hs-var">ppLlvmBlockLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006776"><span class="hs-keyword hs-var">label</span></a></span><span>
</span><span id="line-222"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Store"><span class="hs-identifier hs-type">Store</span></a></span><span>       </span><span id="local-6989586621681006774"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006774"><span class="hs-identifier hs-var">value</span></a></span></span><span> </span><span id="local-6989586621681006773"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006773"><span class="hs-identifier hs-var">ptr</span></a></span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStore"><span class="hs-identifier hs-var">ppStore</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006774"><span class="hs-identifier hs-var">value</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006773"><span class="hs-identifier hs-var">ptr</span></a></span><span>
</span><span id="line-223"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Switch"><span class="hs-identifier hs-type">Switch</span></a></span><span>      </span><span id="local-6989586621681006770"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006770"><span class="hs-identifier hs-var">scrut</span></a></span></span><span> </span><span id="local-6989586621681006769"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006769"><span class="hs-identifier hs-var">def</span></a></span></span><span> </span><span id="local-6989586621681006768"><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006768"><span class="hs-identifier hs-var">tgs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; [(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSwitch"><span class="hs-identifier hs-var">ppSwitch</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006770"><span class="hs-identifier hs-var">scrut</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006769"><span class="hs-identifier hs-var">def</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006768"><span class="hs-identifier hs-var">tgs</span></a></span><span>
</span><span id="line-224"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Return"><span class="hs-identifier hs-type">Return</span></a></span><span>      </span><span id="local-6989586621681006765"><span class="annot"><span class="annottext">Maybe LlvmVar
</span><a href="#local-6989586621681006765"><span class="hs-identifier hs-var">result</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; Maybe LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppReturn"><span class="hs-identifier hs-var">ppReturn</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe LlvmVar
</span><a href="#local-6989586621681006765"><span class="hs-identifier hs-var">result</span></a></span><span>
</span><span id="line-225"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span>        </span><span id="local-6989586621681006762"><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006762"><span class="hs-identifier hs-var">expr</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmExpression"><span class="hs-identifier hs-var">ppLlvmExpression</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006762"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-226"></span><span>        </span><span class="annot"><span class="annottext">LlvmStatement
</span><a href="GHC.Llvm.Syntax.html#Unreachable"><span class="hs-identifier hs-var">Unreachable</span></a></span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681006795"><span class="hs-identifier hs-var">ind</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;unreachable&quot;</span></span><span>
</span><span id="line-227"></span><span>        </span><span class="annot"><span class="annottext">LlvmStatement
</span><a href="GHC.Llvm.Syntax.html#Nop"><span class="hs-identifier hs-var">Nop</span></a></span><span>                       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-228"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#MetaStmt"><span class="hs-identifier hs-type">MetaStmt</span></a></span><span>    </span><span id="local-6989586621681006758"><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006758"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span id="local-6989586621681006757"><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006757"><span class="hs-identifier hs-var">s</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [MetaAnnot] -&gt; LlvmStatement -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaStatement"><span class="hs-identifier hs-var">ppMetaStatement</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006797"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006758"><span class="hs-identifier hs-var">meta</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006757"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-229"></span><span>
</span><span id="line-230"></span><span>
</span><span id="line-231"></span><span class="hs-comment">-- | Print out an LLVM expression.</span><span>
</span><span id="line-232"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLlvmExpression"><span class="hs-identifier hs-type">ppLlvmExpression</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmExpression"><span class="hs-identifier hs-type">LlvmExpression</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-233"></span><span id="ppLlvmExpression"><span class="annot"><span class="annottext">ppLlvmExpression :: LlvmOpts -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmExpression"><span class="hs-identifier hs-var hs-var">ppLlvmExpression</span></a></span></span><span> </span><span id="local-6989586621681006755"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006754"><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006754"><span class="hs-identifier hs-var">expr</span></a></span></span><span>
</span><span id="line-234"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006754"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-235"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Alloca"><span class="hs-identifier hs-type">Alloca</span></a></span><span>     </span><span id="local-6989586621681006752"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006752"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006751"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006751"><span class="hs-identifier hs-var">amount</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmType -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAlloca"><span class="hs-identifier hs-var">ppAlloca</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006752"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006751"><span class="hs-identifier hs-var">amount</span></a></span><span>
</span><span id="line-236"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmOp"><span class="hs-identifier hs-type">LlvmOp</span></a></span><span>     </span><span id="local-6989586621681006748"><span class="annot"><span class="annottext">LlvmMachOp
</span><a href="#local-6989586621681006748"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006747"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006747"><span class="hs-identifier hs-var">left</span></a></span></span><span> </span><span id="local-6989586621681006746"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006746"><span class="hs-identifier hs-var">right</span></a></span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmMachOp -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMachOp"><span class="hs-identifier hs-var">ppMachOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmMachOp
</span><a href="#local-6989586621681006748"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006747"><span class="hs-identifier hs-var">left</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006746"><span class="hs-identifier hs-var">right</span></a></span><span>
</span><span id="line-237"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Call"><span class="hs-identifier hs-type">Call</span></a></span><span>       </span><span id="local-6989586621681006743"><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006743"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006742"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006742"><span class="hs-identifier hs-var">fp</span></a></span></span><span> </span><span id="local-6989586621681006741"><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006741"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621681006740"><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006740"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmCallType -&gt; LlvmVar -&gt; [MetaExpr] -&gt; [LlvmFuncAttr] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCall"><span class="hs-identifier hs-var">ppCall</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006743"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006742"><span class="hs-identifier hs-var">fp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmVar -&gt; MetaExpr) -&gt; [LlvmVar] -&gt; [MetaExpr]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; MetaExpr
</span><a href="GHC.Llvm.MetaData.html#MetaVar"><span class="hs-identifier hs-var">MetaVar</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006741"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006740"><span class="hs-identifier hs-var">attrs</span></a></span><span>
</span><span id="line-238"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#CallM"><span class="hs-identifier hs-type">CallM</span></a></span><span>      </span><span id="local-6989586621681006736"><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006736"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006735"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006735"><span class="hs-identifier hs-var">fp</span></a></span></span><span> </span><span id="local-6989586621681006734"><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006734"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621681006733"><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006733"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmCallType -&gt; LlvmVar -&gt; [MetaExpr] -&gt; [LlvmFuncAttr] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCall"><span class="hs-identifier hs-var">ppCall</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006736"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006735"><span class="hs-identifier hs-var">fp</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006734"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006733"><span class="hs-identifier hs-var">attrs</span></a></span><span>
</span><span id="line-239"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Cast"><span class="hs-identifier hs-type">Cast</span></a></span><span>       </span><span id="local-6989586621681006731"><span class="annot"><span class="annottext">LlvmCastOp
</span><a href="#local-6989586621681006731"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006730"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006730"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681006729"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006729"><span class="hs-identifier hs-var">to</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmCastOp -&gt; LlvmVar -&gt; LlvmType -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCast"><span class="hs-identifier hs-var">ppCast</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCastOp
</span><a href="#local-6989586621681006731"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006730"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006729"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-240"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Compare"><span class="hs-identifier hs-type">Compare</span></a></span><span>    </span><span id="local-6989586621681006726"><span class="annot"><span class="annottext">LlvmCmpOp
</span><a href="#local-6989586621681006726"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006725"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006725"><span class="hs-identifier hs-var">left</span></a></span></span><span> </span><span id="local-6989586621681006724"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006724"><span class="hs-identifier hs-var">right</span></a></span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmCmpOp -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCmpOp"><span class="hs-identifier hs-var">ppCmpOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCmpOp
</span><a href="#local-6989586621681006726"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006725"><span class="hs-identifier hs-var">left</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006724"><span class="hs-identifier hs-var">right</span></a></span><span>
</span><span id="line-241"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Extract"><span class="hs-identifier hs-type">Extract</span></a></span><span>    </span><span id="local-6989586621681006721"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006721"><span class="hs-identifier hs-var">vec</span></a></span></span><span> </span><span id="local-6989586621681006720"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006720"><span class="hs-identifier hs-var">idx</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppExtract"><span class="hs-identifier hs-var">ppExtract</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006721"><span class="hs-identifier hs-var">vec</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006720"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-242"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#ExtractV"><span class="hs-identifier hs-type">ExtractV</span></a></span><span>   </span><span id="local-6989586621681006717"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006717"><span class="hs-identifier hs-var">struct</span></a></span></span><span> </span><span id="local-6989586621681006716"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006716"><span class="hs-identifier hs-var">idx</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppExtractV"><span class="hs-identifier hs-var">ppExtractV</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006717"><span class="hs-identifier hs-var">struct</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006716"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-243"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Insert"><span class="hs-identifier hs-type">Insert</span></a></span><span>     </span><span id="local-6989586621681006713"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006713"><span class="hs-identifier hs-var">vec</span></a></span></span><span> </span><span id="local-6989586621681006712"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006712"><span class="hs-identifier hs-var">elt</span></a></span></span><span> </span><span id="local-6989586621681006711"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006711"><span class="hs-identifier hs-var">idx</span></a></span></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppInsert"><span class="hs-identifier hs-var">ppInsert</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006713"><span class="hs-identifier hs-var">vec</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006712"><span class="hs-identifier hs-var">elt</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006711"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-244"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#GetElemPtr"><span class="hs-identifier hs-type">GetElemPtr</span></a></span><span> </span><span id="local-6989586621681006708"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006708"><span class="hs-identifier hs-var">inb</span></a></span></span><span> </span><span id="local-6989586621681006707"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006707"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span id="local-6989586621681006706"><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006706"><span class="hs-identifier hs-var">indexes</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; Bool -&gt; LlvmVar -&gt; [LlvmVar] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppGetElementPtr"><span class="hs-identifier hs-var">ppGetElementPtr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006708"><span class="hs-identifier hs-var">inb</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006707"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006706"><span class="hs-identifier hs-var">indexes</span></a></span><span>
</span><span id="line-245"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Load"><span class="hs-identifier hs-type">Load</span></a></span><span>       </span><span id="local-6989586621681006703"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006703"><span class="hs-identifier hs-var">ptr</span></a></span></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLoad"><span class="hs-identifier hs-var">ppLoad</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006703"><span class="hs-identifier hs-var">ptr</span></a></span><span>
</span><span id="line-246"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#ALoad"><span class="hs-identifier hs-type">ALoad</span></a></span><span>      </span><span id="local-6989586621681006700"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006700"><span class="hs-identifier hs-var">ord</span></a></span></span><span> </span><span id="local-6989586621681006699"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006699"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span id="local-6989586621681006698"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006698"><span class="hs-identifier hs-var">ptr</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmSyncOrdering -&gt; Bool -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppALoad"><span class="hs-identifier hs-var">ppALoad</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006700"><span class="hs-identifier hs-var">ord</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006699"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006698"><span class="hs-identifier hs-var">ptr</span></a></span><span>
</span><span id="line-247"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Malloc"><span class="hs-identifier hs-type">Malloc</span></a></span><span>     </span><span id="local-6989586621681006695"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006695"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006694"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006694"><span class="hs-identifier hs-var">amount</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmType -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMalloc"><span class="hs-identifier hs-var">ppMalloc</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006695"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006694"><span class="hs-identifier hs-var">amount</span></a></span><span>
</span><span id="line-248"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#AtomicRMW"><span class="hs-identifier hs-type">AtomicRMW</span></a></span><span>  </span><span id="local-6989586621681006691"><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="#local-6989586621681006691"><span class="hs-identifier hs-var">aop</span></a></span></span><span> </span><span id="local-6989586621681006690"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006690"><span class="hs-identifier hs-var">tgt</span></a></span></span><span> </span><span id="local-6989586621681006689"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006689"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681006688"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006688"><span class="hs-identifier hs-var">ordering</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmAtomicOp -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAtomicRMW"><span class="hs-identifier hs-var">ppAtomicRMW</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="#local-6989586621681006691"><span class="hs-identifier hs-var">aop</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006690"><span class="hs-identifier hs-var">tgt</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006689"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006688"><span class="hs-identifier hs-var">ordering</span></a></span><span>
</span><span id="line-249"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#CmpXChg"><span class="hs-identifier hs-type">CmpXChg</span></a></span><span>    </span><span id="local-6989586621681006685"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006685"><span class="hs-identifier hs-var">addr</span></a></span></span><span> </span><span id="local-6989586621681006684"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006684"><span class="hs-identifier hs-var">old</span></a></span></span><span> </span><span id="local-6989586621681006683"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006683"><span class="hs-identifier hs-var">new</span></a></span></span><span> </span><span id="local-6989586621681006682"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006682"><span class="hs-identifier hs-var">s_ord</span></a></span></span><span> </span><span id="local-6989586621681006681"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006681"><span class="hs-identifier hs-var">f_ord</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmVar
-&gt; LlvmVar
-&gt; LlvmVar
-&gt; LlvmSyncOrdering
-&gt; LlvmSyncOrdering
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCmpXChg"><span class="hs-identifier hs-var">ppCmpXChg</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006685"><span class="hs-identifier hs-var">addr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006684"><span class="hs-identifier hs-var">old</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006683"><span class="hs-identifier hs-var">new</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006682"><span class="hs-identifier hs-var">s_ord</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006681"><span class="hs-identifier hs-var">f_ord</span></a></span><span>
</span><span id="line-250"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Phi"><span class="hs-identifier hs-type">Phi</span></a></span><span>        </span><span id="local-6989586621681006678"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006678"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006677"><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006677"><span class="hs-identifier hs-var">predecessors</span></a></span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmType -&gt; [(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPhi"><span class="hs-identifier hs-var">ppPhi</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006678"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006677"><span class="hs-identifier hs-var">predecessors</span></a></span><span>
</span><span id="line-251"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#Asm"><span class="hs-identifier hs-type">Asm</span></a></span><span>        </span><span id="local-6989586621681006674"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006674"><span class="hs-identifier hs-var">asm</span></a></span></span><span> </span><span id="local-6989586621681006673"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006673"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621681006672"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006672"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621681006671"><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006671"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621681006670"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006670"><span class="hs-identifier hs-var">se</span></a></span></span><span> </span><span id="local-6989586621681006669"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006669"><span class="hs-identifier hs-var">sk</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LMString
-&gt; LMString
-&gt; LlvmType
-&gt; [LlvmVar]
-&gt; Bool
-&gt; Bool
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAsm"><span class="hs-identifier hs-var">ppAsm</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006674"><span class="hs-identifier hs-var">asm</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006673"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006672"><span class="hs-identifier hs-var">ty</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006671"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006670"><span class="hs-identifier hs-var">se</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006669"><span class="hs-identifier hs-var">sk</span></a></span><span>
</span><span id="line-252"></span><span>        </span><span class="annot"><a href="GHC.Llvm.Syntax.html#MExpr"><span class="hs-identifier hs-type">MExpr</span></a></span><span>      </span><span id="local-6989586621681006666"><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006666"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span id="local-6989586621681006665"><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006665"><span class="hs-identifier hs-var">expr</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [MetaAnnot] -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaAnnotExpr"><span class="hs-identifier hs-var">ppMetaAnnotExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006755"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006666"><span class="hs-identifier hs-var">meta</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006665"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-253"></span><span>
</span><span id="line-254"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-type">ppMetaExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaExpr"><span class="hs-identifier hs-type">MetaExpr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-255"></span><span id="ppMetaExpr"><span class="annot"><span class="annottext">ppMetaExpr :: LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var hs-var">ppMetaExpr</span></a></span></span><span> </span><span id="local-6989586621681006663"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006663"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-256"></span><span>  </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaVar"><span class="hs-identifier hs-type">MetaVar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-type">LMLitVar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMNullLit"><span class="hs-identifier hs-type">LMNullLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;null&quot;</span></span><span>
</span><span id="line-257"></span><span>  </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaStr"><span class="hs-identifier hs-type">MetaStr</span></a></span><span>    </span><span id="local-6989586621681006659"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006659"><span class="hs-identifier hs-var">s</span></a></span></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006659"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>  </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaNode"><span class="hs-identifier hs-type">MetaNode</span></a></span><span>   </span><span id="local-6989586621681006657"><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006657"><span class="hs-identifier hs-var">n</span></a></span></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">MetaId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006657"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-259"></span><span>  </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaVar"><span class="hs-identifier hs-type">MetaVar</span></a></span><span>    </span><span id="local-6989586621681006656"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006656"><span class="hs-identifier hs-var">v</span></a></span></span><span>                     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006663"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006656"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-260"></span><span>  </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaStruct"><span class="hs-identifier hs-type">MetaStruct</span></a></span><span> </span><span id="local-6989586621681006654"><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006654"><span class="hs-identifier hs-var">es</span></a></span></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(MetaExpr -&gt; SDoc) -&gt; [MetaExpr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var">ppMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006663"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006654"><span class="hs-identifier hs-var">es</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span>
</span><span id="line-263"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-264"></span><span class="hs-comment">-- * Individual print functions</span><span>
</span><span id="line-265"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-266"></span><span>
</span><span id="line-267"></span><span class="hs-comment">-- | Should always be a function pointer. So a global var of function type</span><span>
</span><span id="line-268"></span><span class="hs-comment">-- (since globals are always pointers) or a local var of pointer function type.</span><span>
</span><span id="line-269"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppCall"><span class="hs-identifier hs-type">ppCall</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmCallType"><span class="hs-identifier hs-type">LlvmCallType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaExpr"><span class="hs-identifier hs-type">MetaExpr</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFuncAttr"><span class="hs-identifier hs-type">LlvmFuncAttr</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-270"></span><span id="ppCall"><span class="annot"><span class="annottext">ppCall :: LlvmOpts
-&gt; LlvmCallType -&gt; LlvmVar -&gt; [MetaExpr] -&gt; [LlvmFuncAttr] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCall"><span class="hs-identifier hs-var hs-var">ppCall</span></a></span></span><span> </span><span id="local-6989586621681006652"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006652"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006651"><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006651"><span class="hs-identifier hs-var">ct</span></a></span></span><span> </span><span id="local-6989586621681006650"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006650"><span class="hs-identifier hs-var">fptr</span></a></span></span><span> </span><span id="local-6989586621681006649"><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006649"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span id="local-6989586621681006648"><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006648"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006650"><span class="hs-identifier hs-var">fptr</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-271"></span><span>                           </span><span class="hs-comment">--</span><span>
</span><span id="line-272"></span><span>    </span><span class="hs-comment">-- if local var function pointer, unwrap</span><span>
</span><span id="line-273"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Types.html#LMLocalVar"><span class="hs-identifier hs-type">LMLocalVar</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMPointer"><span class="hs-identifier hs-type">LMPointer</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMFunction"><span class="hs-identifier hs-type">LMFunction</span></a></span><span> </span><span id="local-6989586621681006644"><span class="annot"><span class="annottext">LlvmFunctionDecl
</span><a href="#local-6989586621681006644"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl -&gt; SDoc
</span><a href="#local-6989586621681006643"><span class="hs-identifier hs-var">ppCall'</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl
</span><a href="#local-6989586621681006644"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-274"></span><span>
</span><span id="line-275"></span><span>    </span><span class="hs-comment">-- should be function type otherwise</span><span>
</span><span id="line-276"></span><span>    </span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobalVar"><span class="hs-identifier hs-type">LMGlobalVar</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMFunction"><span class="hs-identifier hs-type">LMFunction</span></a></span><span> </span><span id="local-6989586621681006642"><span class="annot"><span class="annottext">LlvmFunctionDecl
</span><a href="#local-6989586621681006642"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMSection
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMConst
</span><span class="hs-identifier">_</span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl -&gt; SDoc
</span><a href="#local-6989586621681006643"><span class="hs-identifier hs-var">ppCall'</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmFunctionDecl
</span><a href="#local-6989586621681006642"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-277"></span><span>
</span><span id="line-278"></span><span>    </span><span class="hs-comment">-- not pointer or function, so error</span><span>
</span><span id="line-279"></span><span>    </span><span id="local-6989586621681006641"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006641"><span class="hs-identifier hs-var">_other</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; String -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ppCall called with non LMFunction type!\nMust be &quot;</span></span><span>
</span><span id="line-280"></span><span>                </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; called with either global var of function type or &quot;</span></span><span>
</span><span id="line-281"></span><span>                </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;local var of pointer function type.&quot;</span></span><span>
</span><span id="line-282"></span><span>
</span><span id="line-283"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-284"></span><span>        </span><span id="local-6989586621681006643"><span class="annot"><span class="annottext">ppCall' :: LlvmFunctionDecl -&gt; SDoc
</span><a href="#local-6989586621681006643"><span class="hs-identifier hs-var hs-var">ppCall'</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmFunctionDecl"><span class="hs-identifier hs-type">LlvmFunctionDecl</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681006637"><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006637"><span class="hs-identifier hs-var">cc</span></a></span></span><span> </span><span id="local-6989586621681006636"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006636"><span class="hs-identifier hs-var">ret</span></a></span></span><span> </span><span id="local-6989586621681006635"><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006635"><span class="hs-identifier hs-var">argTy</span></a></span></span><span> </span><span id="local-6989586621681006634"><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006634"><span class="hs-identifier hs-var">params</span></a></span></span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-285"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006631"><span class="annot"><span class="annottext">tc :: SDoc
</span><a href="#local-6989586621681006631"><span class="hs-identifier hs-var hs-var">tc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">LlvmCallType
</span><a href="#local-6989586621681006651"><span class="hs-identifier hs-var">ct</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallType -&gt; LlvmCallType -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">LlvmCallType
</span><a href="GHC.Llvm.Types.html#TailCall"><span class="hs-identifier hs-var">TailCall</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;tail &quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-286"></span><span>                </span><span id="local-6989586621681006629"><span class="annot"><span class="annottext">ppValues :: SDoc
</span><a href="#local-6989586621681006629"><span class="hs-identifier hs-var hs-var">ppValues</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [[LlvmParamAttr]] -&gt; [MetaExpr] -&gt; SDoc
</span><a href="#local-6989586621681006628"><span class="hs-identifier hs-var">ppCallParams</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006652"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmParameter -&gt; [LlvmParamAttr])
-&gt; [LlvmParameter] -&gt; [[LlvmParamAttr]]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmParameter -&gt; [LlvmParamAttr]
forall a b. (a, b) -&gt; b
</span><a href="../../base/src/Data.Tuple.html#snd"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006634"><span class="hs-identifier hs-var">params</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006649"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-287"></span><span>                </span><span id="local-6989586621681006625"><span class="annot"><span class="annottext">ppArgTy :: SDoc
</span><a href="#local-6989586621681006625"><span class="hs-identifier hs-var hs-var">ppArgTy</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmParameter -&gt; SDoc) -&gt; [LlvmParameter] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; SDoc)
-&gt; (LlvmParameter -&gt; LlvmType) -&gt; LlvmParameter -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmParameter -&gt; LlvmType
forall a b. (a, b) -&gt; a
</span><a href="../../base/src/Data.Tuple.html#fst"><span class="hs-identifier hs-var">fst</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmParameter]
</span><a href="#local-6989586621681006634"><span class="hs-identifier hs-var">params</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-288"></span><span>                           </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="#local-6989586621681006635"><span class="hs-identifier hs-var">argTy</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-289"></span><span>                               </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="GHC.Llvm.Types.html#VarArgs"><span class="hs-identifier hs-var">VarArgs</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, ...&quot;</span></span><span>
</span><span id="line-290"></span><span>                               </span><span class="annot"><span class="annottext">LlvmParameterListType
</span><a href="GHC.Llvm.Types.html#FixedArgs"><span class="hs-identifier hs-var">FixedArgs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-291"></span><span>                </span><span id="local-6989586621681006622"><span class="annot"><span class="annottext">fnty :: SDoc
</span><a href="#local-6989586621681006622"><span class="hs-identifier hs-var hs-var">fnty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006625"><span class="hs-identifier hs-var">ppArgTy</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span>
</span><span id="line-292"></span><span>                </span><span id="local-6989586621681006620"><span class="annot"><span class="annottext">attrDoc :: SDoc
</span><a href="#local-6989586621681006620"><span class="hs-identifier hs-var hs-var">attrDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LlvmFuncAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmFuncAttr]
</span><a href="#local-6989586621681006648"><span class="hs-identifier hs-var">attrs</span></a></span><span>
</span><span id="line-293"></span><span>            </span><span class="hs-keyword">in</span><span>  </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006631"><span class="hs-identifier hs-var">tc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;call&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCallConvention
</span><a href="#local-6989586621681006637"><span class="hs-identifier hs-var">cc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006636"><span class="hs-identifier hs-var">ret</span></a></span><span>
</span><span id="line-294"></span><span>                    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006622"><span class="hs-identifier hs-var">fnty</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006652"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006650"><span class="hs-identifier hs-var">fptr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006629"><span class="hs-identifier hs-var">ppValues</span></a></span><span>
</span><span id="line-295"></span><span>                    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006620"><span class="hs-identifier hs-var">attrDoc</span></a></span><span>
</span><span id="line-296"></span><span>
</span><span id="line-297"></span><span>        </span><span class="annot"><a href="#local-6989586621681006628"><span class="hs-identifier hs-type">ppCallParams</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmParamAttr"><span class="hs-identifier hs-type">LlvmParamAttr</span></a></span><span class="hs-special">]</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaExpr"><span class="hs-identifier hs-type">MetaExpr</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-298"></span><span>        </span><span id="local-6989586621681006628"><span class="annot"><span class="annottext">ppCallParams :: LlvmOpts -&gt; [[LlvmParamAttr]] -&gt; [MetaExpr] -&gt; SDoc
</span><a href="#local-6989586621681006628"><span class="hs-identifier hs-var hs-var">ppCallParams</span></a></span></span><span> </span><span id="local-6989586621681006619"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006619"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006618"><span class="annot"><span class="annottext">[[LlvmParamAttr]]
</span><a href="#local-6989586621681006618"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span id="local-6989586621681006617"><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006617"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">([LlvmParamAttr] -&gt; MetaExpr -&gt; SDoc)
-&gt; [[LlvmParamAttr]] -&gt; [MetaExpr] -&gt; [SDoc]
forall a b c. (a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]
</span><a href="../../base/src/GHC.List.html#zipWith"><span class="hs-identifier hs-var">zipWith</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; MetaExpr -&gt; SDoc
</span><a href="#local-6989586621681006615"><span class="hs-identifier hs-var">ppCallMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">[[LlvmParamAttr]]
</span><a href="#local-6989586621681006618"><span class="hs-identifier hs-var">attrs</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006617"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-299"></span><span>         </span><span class="hs-keyword">where</span><span>
</span><span id="line-300"></span><span>          </span><span class="hs-comment">-- Metadata needs to be marked as having the `metadata` type when used</span><span>
</span><span id="line-301"></span><span>          </span><span class="hs-comment">-- in a call argument</span><span>
</span><span id="line-302"></span><span>          </span><span id="local-6989586621681006615"><span class="annot"><span class="annottext">ppCallMetaExpr :: [LlvmParamAttr] -&gt; MetaExpr -&gt; SDoc
</span><a href="#local-6989586621681006615"><span class="hs-identifier hs-var hs-var">ppCallMetaExpr</span></a></span></span><span> </span><span id="local-6989586621681006614"><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006614"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaVar"><span class="hs-identifier hs-type">MetaVar</span></a></span><span> </span><span id="local-6989586621681006613"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006613"><span class="hs-identifier hs-var">v</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar%27"><span class="hs-identifier hs-var">ppVar'</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006614"><span class="hs-identifier hs-var">attrs</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006619"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006613"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-303"></span><span>          </span><span class="annot"><a href="#local-6989586621681006615"><span class="hs-identifier hs-var">ppCallMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681006611"><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006611"><span class="hs-identifier hs-var">v</span></a></span></span><span>             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;metadata&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var">ppMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006619"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006611"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-304"></span><span>
</span><span id="line-305"></span><span>
</span><span id="line-306"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMachOp"><span class="hs-identifier hs-type">ppMachOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmMachOp"><span class="hs-identifier hs-type">LlvmMachOp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-307"></span><span id="ppMachOp"><span class="annot"><span class="annottext">ppMachOp :: LlvmOpts -&gt; LlvmMachOp -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMachOp"><span class="hs-identifier hs-var hs-var">ppMachOp</span></a></span></span><span> </span><span id="local-6989586621681006610"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006610"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006609"><span class="annot"><span class="annottext">LlvmMachOp
</span><a href="#local-6989586621681006609"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006608"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006608"><span class="hs-identifier hs-var">left</span></a></span></span><span> </span><span id="local-6989586621681006607"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006607"><span class="hs-identifier hs-var">right</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-308"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmMachOp -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmMachOp
</span><a href="#local-6989586621681006609"><span class="hs-identifier hs-var">op</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006608"><span class="hs-identifier hs-var">left</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006610"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006608"><span class="hs-identifier hs-var">left</span></a></span><span>
</span><span id="line-309"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006610"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006607"><span class="hs-identifier hs-var">right</span></a></span><span>
</span><span id="line-310"></span><span>
</span><span id="line-311"></span><span>
</span><span id="line-312"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppCmpOp"><span class="hs-identifier hs-type">ppCmpOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmCmpOp"><span class="hs-identifier hs-type">LlvmCmpOp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-313"></span><span id="ppCmpOp"><span class="annot"><span class="annottext">ppCmpOp :: LlvmOpts -&gt; LlvmCmpOp -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCmpOp"><span class="hs-identifier hs-var hs-var">ppCmpOp</span></a></span></span><span> </span><span id="local-6989586621681006606"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006606"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006605"><span class="annot"><span class="annottext">LlvmCmpOp
</span><a href="#local-6989586621681006605"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006604"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006604"><span class="hs-identifier hs-var">left</span></a></span></span><span> </span><span id="local-6989586621681006603"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006603"><span class="hs-identifier hs-var">right</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-314"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006602"><span class="annot"><span class="annottext">cmpOp :: SDoc
</span><a href="#local-6989586621681006602"><span class="hs-identifier hs-var hs-var">cmpOp</span></a></span></span><span>
</span><span id="line-315"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isInt"><span class="hs-identifier hs-var">isInt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006604"><span class="hs-identifier hs-var">left</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isInt"><span class="hs-identifier hs-var">isInt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006603"><span class="hs-identifier hs-var">right</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;icmp&quot;</span></span><span>
</span><span id="line-316"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isFloat"><span class="hs-identifier hs-var">isFloat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006604"><span class="hs-identifier hs-var">left</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isFloat"><span class="hs-identifier hs-var">isFloat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006603"><span class="hs-identifier hs-var">right</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fcmp&quot;</span></span><span>
</span><span id="line-317"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;icmp&quot;</span></span><span> </span><span class="hs-comment">-- Just continue as its much easier to debug</span><span>
</span><span id="line-318"></span><span>        </span><span class="hs-comment">{-
        | otherwise = error (&quot;can't compare different types, left = &quot;
                ++ (show $ getVarType left) ++ &quot;, right = &quot;
                ++ (show $ getVarType right))
        -}</span><span>
</span><span id="line-323"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006602"><span class="hs-identifier hs-var">cmpOp</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCmpOp -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCmpOp
</span><a href="#local-6989586621681006605"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006604"><span class="hs-identifier hs-var">left</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-324"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006606"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006604"><span class="hs-identifier hs-var">left</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006606"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006603"><span class="hs-identifier hs-var">right</span></a></span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span>
</span><span id="line-327"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAssignment"><span class="hs-identifier hs-type">ppAssignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-328"></span><span id="ppAssignment"><span class="annot"><span class="annottext">ppAssignment :: LlvmOpts -&gt; LlvmVar -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAssignment"><span class="hs-identifier hs-var hs-var">ppAssignment</span></a></span></span><span> </span><span id="local-6989586621681006598"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006598"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006597"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006597"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621681006596"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006596"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006598"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006597"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006596"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-329"></span><span>
</span><span id="line-330"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppFence"><span class="hs-identifier hs-type">ppFence</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-331"></span><span id="ppFence"><span class="annot"><span class="annottext">ppFence :: Bool -&gt; LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppFence"><span class="hs-identifier hs-var hs-var">ppFence</span></a></span></span><span> </span><span id="local-6989586621681006595"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006595"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span id="local-6989586621681006594"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006594"><span class="hs-identifier hs-var">ord</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-332"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006593"><span class="annot"><span class="annottext">singleThread :: SDoc
</span><a href="#local-6989586621681006593"><span class="hs-identifier hs-var hs-var">singleThread</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006595"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;singlethread&quot;</span></span><span>
</span><span id="line-333"></span><span>                                </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-334"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fence&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006593"><span class="hs-identifier hs-var">singleThread</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006594"><span class="hs-identifier hs-var">ord</span></a></span><span>
</span><span id="line-335"></span><span>
</span><span id="line-336"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-type">ppSyncOrdering</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-337"></span><span id="ppSyncOrdering"><span class="annot"><span class="annottext">ppSyncOrdering :: LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var hs-var">ppSyncOrdering</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncUnord"><span class="hs-identifier hs-var">SyncUnord</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;unordered&quot;</span></span><span>
</span><span id="line-338"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncMonotonic"><span class="hs-identifier hs-var">SyncMonotonic</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;monotonic&quot;</span></span><span>
</span><span id="line-339"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncAcquire"><span class="hs-identifier hs-var">SyncAcquire</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;acquire&quot;</span></span><span>
</span><span id="line-340"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncRelease"><span class="hs-identifier hs-var">SyncRelease</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;release&quot;</span></span><span>
</span><span id="line-341"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncAcqRel"><span class="hs-identifier hs-var">SyncAcqRel</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;acq_rel&quot;</span></span><span>
</span><span id="line-342"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="GHC.Llvm.Syntax.html#SyncSeqCst"><span class="hs-identifier hs-var">SyncSeqCst</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;seq_cst&quot;</span></span><span>
</span><span id="line-343"></span><span>
</span><span id="line-344"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-type">ppAtomicOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmAtomicOp"><span class="hs-identifier hs-type">LlvmAtomicOp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-345"></span><span id="ppAtomicOp"><span class="annot"><span class="annottext">ppAtomicOp :: LlvmAtomicOp -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var hs-var">ppAtomicOp</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Xchg"><span class="hs-identifier hs-var">LAO_Xchg</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xchg&quot;</span></span><span>
</span><span id="line-346"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Add"><span class="hs-identifier hs-var">LAO_Add</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span>
</span><span id="line-347"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Sub"><span class="hs-identifier hs-var">LAO_Sub</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sub&quot;</span></span><span>
</span><span id="line-348"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_And"><span class="hs-identifier hs-var">LAO_And</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;and&quot;</span></span><span>
</span><span id="line-349"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Nand"><span class="hs-identifier hs-var">LAO_Nand</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;nand&quot;</span></span><span>
</span><span id="line-350"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Or"><span class="hs-identifier hs-var">LAO_Or</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;or&quot;</span></span><span>
</span><span id="line-351"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Xor"><span class="hs-identifier hs-var">LAO_Xor</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xor&quot;</span></span><span>
</span><span id="line-352"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Max"><span class="hs-identifier hs-var">LAO_Max</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;max&quot;</span></span><span>
</span><span id="line-353"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Min"><span class="hs-identifier hs-var">LAO_Min</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;min&quot;</span></span><span>
</span><span id="line-354"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Umax"><span class="hs-identifier hs-var">LAO_Umax</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;umax&quot;</span></span><span>
</span><span id="line-355"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="GHC.Llvm.Syntax.html#LAO_Umin"><span class="hs-identifier hs-var">LAO_Umin</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;umin&quot;</span></span><span>
</span><span id="line-356"></span><span>
</span><span id="line-357"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAtomicRMW"><span class="hs-identifier hs-type">ppAtomicRMW</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmAtomicOp"><span class="hs-identifier hs-type">LlvmAtomicOp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-358"></span><span id="ppAtomicRMW"><span class="annot"><span class="annottext">ppAtomicRMW :: LlvmOpts
-&gt; LlvmAtomicOp -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAtomicRMW"><span class="hs-identifier hs-var hs-var">ppAtomicRMW</span></a></span></span><span> </span><span id="local-6989586621681006573"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006573"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006572"><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="#local-6989586621681006572"><span class="hs-identifier hs-var">aop</span></a></span></span><span> </span><span id="local-6989586621681006571"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006571"><span class="hs-identifier hs-var">tgt</span></a></span></span><span> </span><span id="local-6989586621681006570"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006570"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681006569"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006569"><span class="hs-identifier hs-var">ordering</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-359"></span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;atomicrmw&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAtomicOp"><span class="hs-identifier hs-var">ppAtomicOp</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmAtomicOp
</span><a href="#local-6989586621681006572"><span class="hs-identifier hs-var">aop</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006573"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006571"><span class="hs-identifier hs-var">tgt</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-360"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006573"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006570"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006569"><span class="hs-identifier hs-var">ordering</span></a></span><span>
</span><span id="line-361"></span><span>
</span><span id="line-362"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppCmpXChg"><span class="hs-identifier hs-type">ppCmpXChg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span>
</span><span id="line-363"></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-364"></span><span id="ppCmpXChg"><span class="annot"><span class="annottext">ppCmpXChg :: LlvmOpts
-&gt; LlvmVar
-&gt; LlvmVar
-&gt; LlvmVar
-&gt; LlvmSyncOrdering
-&gt; LlvmSyncOrdering
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCmpXChg"><span class="hs-identifier hs-var hs-var">ppCmpXChg</span></a></span></span><span> </span><span id="local-6989586621681006568"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006568"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006567"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006567"><span class="hs-identifier hs-var">addr</span></a></span></span><span> </span><span id="local-6989586621681006566"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006566"><span class="hs-identifier hs-var">old</span></a></span></span><span> </span><span id="local-6989586621681006565"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006565"><span class="hs-identifier hs-var">new</span></a></span></span><span> </span><span id="local-6989586621681006564"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006564"><span class="hs-identifier hs-var">s_ord</span></a></span></span><span> </span><span id="local-6989586621681006563"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006563"><span class="hs-identifier hs-var">f_ord</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-365"></span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cmpxchg&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006568"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006567"><span class="hs-identifier hs-var">addr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006568"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006566"><span class="hs-identifier hs-var">old</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006568"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006565"><span class="hs-identifier hs-var">new</span></a></span><span>
</span><span id="line-366"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006564"><span class="hs-identifier hs-var">s_ord</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006563"><span class="hs-identifier hs-var">f_ord</span></a></span><span>
</span><span id="line-367"></span><span>
</span><span id="line-368"></span><span class="hs-comment">-- XXX: On x86, vector types need to be 16-byte aligned for aligned access, but</span><span>
</span><span id="line-369"></span><span class="hs-comment">-- we have no way of guaranteeing that this is true with GHC (we would need to</span><span>
</span><span id="line-370"></span><span class="hs-comment">-- modify the layout of the stack and closures, change the storage manager,</span><span>
</span><span id="line-371"></span><span class="hs-comment">-- etc.). So, we blindly tell LLVM that *any* vector store or load could be</span><span>
</span><span id="line-372"></span><span class="hs-comment">-- unaligned. In the future we may be able to guarantee that certain vector</span><span>
</span><span id="line-373"></span><span class="hs-comment">-- access patterns are aligned, in which case we will need a more granular way</span><span>
</span><span id="line-374"></span><span class="hs-comment">-- of specifying alignment.</span><span>
</span><span id="line-375"></span><span>
</span><span id="line-376"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLoad"><span class="hs-identifier hs-type">ppLoad</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-377"></span><span id="ppLoad"><span class="annot"><span class="annottext">ppLoad :: LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLoad"><span class="hs-identifier hs-var hs-var">ppLoad</span></a></span></span><span> </span><span id="local-6989586621681006562"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006562"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006561"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006561"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;load&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006560"><span class="hs-identifier hs-var">derefType</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006562"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006561"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006559"><span class="hs-identifier hs-var">align</span></a></span><span>
</span><span id="line-378"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-379"></span><span>    </span><span id="local-6989586621681006560"><span class="annot"><span class="annottext">derefType :: LlvmType
</span><a href="#local-6989586621681006560"><span class="hs-identifier hs-var hs-var">derefType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType) -&gt; LlvmType -&gt; LlvmType
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006561"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-380"></span><span>    </span><span id="local-6989586621681006559"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006559"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isVector"><span class="hs-identifier hs-var">isVector</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; Bool) -&gt; (LlvmVar -&gt; LlvmType) -&gt; LlvmVar -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType)
-&gt; (LlvmVar -&gt; LlvmType) -&gt; LlvmVar -&gt; LlvmType
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmVar -&gt; Bool) -&gt; LlvmVar -&gt; Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006561"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, align 1&quot;</span></span><span>
</span><span id="line-381"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-382"></span><span>
</span><span id="line-383"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppALoad"><span class="hs-identifier hs-type">ppALoad</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmSyncOrdering"><span class="hs-identifier hs-type">LlvmSyncOrdering</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#SingleThreaded"><span class="hs-identifier hs-type">SingleThreaded</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-384"></span><span id="ppALoad"><span class="annot"><span class="annottext">ppALoad :: LlvmOpts -&gt; LlvmSyncOrdering -&gt; Bool -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppALoad"><span class="hs-identifier hs-var hs-var">ppALoad</span></a></span></span><span> </span><span id="local-6989586621681006556"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006556"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006555"><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006555"><span class="hs-identifier hs-var">ord</span></a></span></span><span> </span><span id="local-6989586621681006554"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006554"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span id="local-6989586621681006553"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006553"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-385"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006549"><span class="annot"><span class="annottext">alignment :: Int
</span><a href="#local-6989586621681006549"><span class="hs-identifier hs-var hs-var">alignment</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; LlvmType -&gt; Int
</span><a href="GHC.Llvm.Types.html#llvmWidthInBits"><span class="hs-identifier hs-var">llvmWidthInBits</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; Platform
</span><a href="GHC.Llvm.Types.html#llvmOptsPlatform"><span class="hs-identifier hs-var hs-var">llvmOptsPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006556"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; Int) -&gt; LlvmType -&gt; Int
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006553"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#quot"><span class="hs-operator hs-var">`quot`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span>
</span><span id="line-386"></span><span>      </span><span id="local-6989586621681006544"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006544"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, align&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006549"><span class="hs-identifier hs-var">alignment</span></a></span><span>
</span><span id="line-387"></span><span>      </span><span id="local-6989586621681006543"><span class="annot"><span class="annottext">sThreaded :: SDoc
</span><a href="#local-6989586621681006543"><span class="hs-identifier hs-var hs-var">sThreaded</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006554"><span class="hs-identifier hs-var">st</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; singlethread&quot;</span></span><span>
</span><span id="line-388"></span><span>                </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-389"></span><span>      </span><span id="local-6989586621681006542"><span class="annot"><span class="annottext">derefType :: LlvmType
</span><a href="#local-6989586621681006542"><span class="hs-identifier hs-var hs-var">derefType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType) -&gt; LlvmType -&gt; LlvmType
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006553"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-390"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;load atomic&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006542"><span class="hs-identifier hs-var">derefType</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006556"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006553"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006543"><span class="hs-identifier hs-var">sThreaded</span></a></span><span>
</span><span id="line-391"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSyncOrdering"><span class="hs-identifier hs-var">ppSyncOrdering</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmSyncOrdering
</span><a href="#local-6989586621681006555"><span class="hs-identifier hs-var">ord</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006544"><span class="hs-identifier hs-var">align</span></a></span><span>
</span><span id="line-392"></span><span>
</span><span id="line-393"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppStore"><span class="hs-identifier hs-type">ppStore</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-394"></span><span id="ppStore"><span class="annot"><span class="annottext">ppStore :: LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStore"><span class="hs-identifier hs-var hs-var">ppStore</span></a></span></span><span> </span><span id="local-6989586621681006541"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006541"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006540"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006540"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span id="local-6989586621681006539"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006539"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-395"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; Bool
</span><a href="#local-6989586621681006538"><span class="hs-identifier hs-var">isVecPtrVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006539"><span class="hs-identifier hs-var">dst</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;store&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006541"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006540"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006541"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006539"><span class="hs-identifier hs-var">dst</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-396"></span><span>                        </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;align 1&quot;</span></span><span>
</span><span id="line-397"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;store&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006541"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006540"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006541"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006539"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-398"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-399"></span><span>    </span><span class="annot"><a href="#local-6989586621681006538"><span class="hs-identifier hs-type">isVecPtrVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-400"></span><span>    </span><span id="local-6989586621681006538"><span class="annot"><span class="annottext">isVecPtrVar :: LlvmVar -&gt; Bool
</span><a href="#local-6989586621681006538"><span class="hs-identifier hs-var hs-var">isVecPtrVar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isVector"><span class="hs-identifier hs-var">isVector</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; Bool) -&gt; (LlvmVar -&gt; LlvmType) -&gt; LlvmVar -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType)
-&gt; (LlvmVar -&gt; LlvmType) -&gt; LlvmVar -&gt; LlvmType
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span>
</span><span id="line-401"></span><span>
</span><span id="line-402"></span><span>
</span><span id="line-403"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppCast"><span class="hs-identifier hs-type">ppCast</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmCastOp"><span class="hs-identifier hs-type">LlvmCastOp</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmType"><span class="hs-identifier hs-type">LlvmType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-404"></span><span id="ppCast"><span class="annot"><span class="annottext">ppCast :: LlvmOpts -&gt; LlvmCastOp -&gt; LlvmVar -&gt; LlvmType -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppCast"><span class="hs-identifier hs-var hs-var">ppCast</span></a></span></span><span> </span><span id="local-6989586621681006537"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006537"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006536"><span class="annot"><span class="annottext">LlvmCastOp
</span><a href="#local-6989586621681006536"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span id="local-6989586621681006535"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006535"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681006534"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006534"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-405"></span><span>    </span><span class="hs-glyph">=</span><span>   </span><span class="annot"><span class="annottext">LlvmCastOp -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmCastOp
</span><a href="#local-6989586621681006536"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-406"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006535"><span class="hs-identifier hs-var">from</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006537"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006535"><span class="hs-identifier hs-var">from</span></a></span><span>
</span><span id="line-407"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;to&quot;</span></span><span>
</span><span id="line-408"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006534"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-409"></span><span>
</span><span id="line-410"></span><span>
</span><span id="line-411"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMalloc"><span class="hs-identifier hs-type">ppMalloc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmType"><span class="hs-identifier hs-type">LlvmType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-412"></span><span id="ppMalloc"><span class="annot"><span class="annottext">ppMalloc :: LlvmOpts -&gt; LlvmType -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMalloc"><span class="hs-identifier hs-var hs-var">ppMalloc</span></a></span></span><span> </span><span id="local-6989586621681006533"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006533"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006532"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006532"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006531"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006531"><span class="hs-identifier hs-var">amount</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-413"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006529"><span class="annot"><span class="annottext">amount' :: LlvmVar
</span><a href="#local-6989586621681006529"><span class="hs-identifier hs-var hs-var">amount'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmLit -&gt; LlvmVar
</span><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-var">LMLitVar</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmLit -&gt; LlvmVar) -&gt; LlvmLit -&gt; LlvmVar
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; LlvmType -&gt; LlvmLit
</span><a href="GHC.Llvm.Types.html#LMIntLit"><span class="hs-identifier hs-var">LMIntLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Integer
forall a. Integral a =&gt; a -&gt; Integer
</span><a href="../../base/src/GHC.Real.html#toInteger"><span class="hs-identifier hs-var">toInteger</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006531"><span class="hs-identifier hs-var">amount</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#i32"><span class="hs-identifier hs-var">i32</span></a></span><span>
</span><span id="line-414"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;malloc&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006532"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006533"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006529"><span class="hs-identifier hs-var">amount'</span></a></span><span>
</span><span id="line-415"></span><span>
</span><span id="line-416"></span><span>
</span><span id="line-417"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAlloca"><span class="hs-identifier hs-type">ppAlloca</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmType"><span class="hs-identifier hs-type">LlvmType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-418"></span><span id="ppAlloca"><span class="annot"><span class="annottext">ppAlloca :: LlvmOpts -&gt; LlvmType -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAlloca"><span class="hs-identifier hs-var hs-var">ppAlloca</span></a></span></span><span> </span><span id="local-6989586621681006526"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006526"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006525"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006525"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006524"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006524"><span class="hs-identifier hs-var">amount</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-419"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006522"><span class="annot"><span class="annottext">amount' :: LlvmVar
</span><a href="#local-6989586621681006522"><span class="hs-identifier hs-var hs-var">amount'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmLit -&gt; LlvmVar
</span><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-var">LMLitVar</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmLit -&gt; LlvmVar) -&gt; LlvmLit -&gt; LlvmVar
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; LlvmType -&gt; LlvmLit
</span><a href="GHC.Llvm.Types.html#LMIntLit"><span class="hs-identifier hs-var">LMIntLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Integer
forall a. Integral a =&gt; a -&gt; Integer
</span><a href="../../base/src/GHC.Real.html#toInteger"><span class="hs-identifier hs-var">toInteger</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006524"><span class="hs-identifier hs-var">amount</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#i32"><span class="hs-identifier hs-var">i32</span></a></span><span>
</span><span id="line-420"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;alloca&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006525"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006526"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006522"><span class="hs-identifier hs-var">amount'</span></a></span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span>
</span><span id="line-423"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppGetElementPtr"><span class="hs-identifier hs-type">ppGetElementPtr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-424"></span><span id="ppGetElementPtr"><span class="annot"><span class="annottext">ppGetElementPtr :: LlvmOpts -&gt; Bool -&gt; LlvmVar -&gt; [LlvmVar] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppGetElementPtr"><span class="hs-identifier hs-var hs-var">ppGetElementPtr</span></a></span></span><span> </span><span id="local-6989586621681006521"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006521"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006520"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006520"><span class="hs-identifier hs-var">inb</span></a></span></span><span> </span><span id="local-6989586621681006519"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006519"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span id="local-6989586621681006518"><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006518"><span class="hs-identifier hs-var">idx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-425"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006516"><span class="annot"><span class="annottext">indexes :: SDoc
</span><a href="#local-6989586621681006516"><span class="hs-identifier hs-var hs-var">indexes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmVar -&gt; SDoc) -&gt; [LlvmVar] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006521"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006518"><span class="hs-identifier hs-var">idx</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-426"></span><span>      </span><span id="local-6989586621681006515"><span class="annot"><span class="annottext">inbound :: SDoc
</span><a href="#local-6989586621681006515"><span class="hs-identifier hs-var hs-var">inbound</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006520"><span class="hs-identifier hs-var">inb</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;inbounds&quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-427"></span><span>      </span><span id="local-6989586621681006514"><span class="annot"><span class="annottext">derefType :: LlvmType
</span><a href="#local-6989586621681006514"><span class="hs-identifier hs-var hs-var">derefType</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType) -&gt; LlvmType -&gt; LlvmType
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006519"><span class="hs-identifier hs-var">ptr</span></a></span><span>
</span><span id="line-428"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;getelementptr&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006515"><span class="hs-identifier hs-var">inbound</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006514"><span class="hs-identifier hs-var">derefType</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006521"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006519"><span class="hs-identifier hs-var">ptr</span></a></span><span>
</span><span id="line-429"></span><span>                            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006516"><span class="hs-identifier hs-var">indexes</span></a></span><span>
</span><span id="line-430"></span><span>
</span><span id="line-431"></span><span>
</span><span id="line-432"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppReturn"><span class="hs-identifier hs-type">ppReturn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-433"></span><span id="ppReturn"><span class="annot"><span class="annottext">ppReturn :: LlvmOpts -&gt; Maybe LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppReturn"><span class="hs-identifier hs-var hs-var">ppReturn</span></a></span></span><span> </span><span id="local-6989586621681006513"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006513"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006512"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006512"><span class="hs-identifier hs-var">var</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ret&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006513"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006512"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-434"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppReturn"><span class="hs-identifier hs-var">ppReturn</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><span class="hs-identifier">_</span></span><span>    </span><span class="annot"><span class="annottext">Maybe LlvmVar
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ret&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#LMVoid"><span class="hs-identifier hs-var">LMVoid</span></a></span><span>
</span><span id="line-435"></span><span>
</span><span id="line-436"></span><span>
</span><span id="line-437"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppBranch"><span class="hs-identifier hs-type">ppBranch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-438"></span><span id="ppBranch"><span class="annot"><span class="annottext">ppBranch :: LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppBranch"><span class="hs-identifier hs-var hs-var">ppBranch</span></a></span></span><span> </span><span id="local-6989586621681006510"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006510"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006509"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006509"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;br&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006510"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006509"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-439"></span><span>
</span><span id="line-440"></span><span>
</span><span id="line-441"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppBranchIf"><span class="hs-identifier hs-type">ppBranchIf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-442"></span><span id="ppBranchIf"><span class="annot"><span class="annottext">ppBranchIf :: LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppBranchIf"><span class="hs-identifier hs-var hs-var">ppBranchIf</span></a></span></span><span> </span><span id="local-6989586621681006508"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006508"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006507"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006507"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681006506"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006506"><span class="hs-identifier hs-var">trueT</span></a></span></span><span> </span><span id="local-6989586621681006505"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006505"><span class="hs-identifier hs-var">falseT</span></a></span></span><span>
</span><span id="line-443"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;br&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006508"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006507"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006508"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006506"><span class="hs-identifier hs-var">trueT</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006508"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006505"><span class="hs-identifier hs-var">falseT</span></a></span><span>
</span><span id="line-444"></span><span>
</span><span id="line-445"></span><span>
</span><span id="line-446"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppPhi"><span class="hs-identifier hs-type">ppPhi</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmType"><span class="hs-identifier hs-type">LlvmType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-447"></span><span id="ppPhi"><span class="annot"><span class="annottext">ppPhi :: LlvmOpts -&gt; LlvmType -&gt; [(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPhi"><span class="hs-identifier hs-var hs-var">ppPhi</span></a></span></span><span> </span><span id="local-6989586621681006504"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006504"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006503"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006503"><span class="hs-identifier hs-var">tp</span></a></span></span><span> </span><span id="local-6989586621681006502"><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006502"><span class="hs-identifier hs-var">preds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-448"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006501"><span class="annot"><span class="annottext">ppPreds :: (LlvmVar, LlvmVar) -&gt; SDoc
</span><a href="#local-6989586621681006501"><span class="hs-identifier hs-var hs-var">ppPreds</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681006500"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006500"><span class="hs-identifier hs-var">val</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681006499"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006499"><span class="hs-keyword hs-var">label</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006504"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006500"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006504"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006499"><span class="hs-keyword hs-var">label</span></a></span><span>
</span><span id="line-449"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;phi&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006503"><span class="hs-identifier hs-var">tp</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; [SDoc]) -&gt; [SDoc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">((LlvmVar, LlvmVar) -&gt; SDoc) -&gt; [(LlvmVar, LlvmVar)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmVar, LlvmVar) -&gt; SDoc
</span><a href="#local-6989586621681006501"><span class="hs-identifier hs-var">ppPreds</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006502"><span class="hs-identifier hs-var">preds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-450"></span><span>
</span><span id="line-451"></span><span>
</span><span id="line-452"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppSwitch"><span class="hs-identifier hs-type">ppSwitch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-453"></span><span id="ppSwitch"><span class="annot"><span class="annottext">ppSwitch :: LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; [(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppSwitch"><span class="hs-identifier hs-var hs-var">ppSwitch</span></a></span></span><span> </span><span id="local-6989586621681006497"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006497"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006496"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006496"><span class="hs-identifier hs-var">scrut</span></a></span></span><span> </span><span id="local-6989586621681006495"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006495"><span class="hs-identifier hs-var">dflt</span></a></span></span><span> </span><span id="local-6989586621681006494"><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006494"><span class="hs-identifier hs-var">targets</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-454"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006493"><span class="annot"><span class="annottext">ppTarget :: (LlvmVar, LlvmVar) -&gt; SDoc
</span><a href="#local-6989586621681006493"><span class="hs-identifier hs-var hs-var">ppTarget</span></a></span></span><span>  </span><span class="hs-special">(</span><span id="local-6989586621681006492"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006492"><span class="hs-identifier hs-var">val</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681006491"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006491"><span class="hs-identifier hs-var">lab</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006497"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006492"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006497"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006491"><span class="hs-identifier hs-var">lab</span></a></span><span>
</span><span id="line-455"></span><span>      </span><span id="local-6989586621681006490"><span class="annot"><span class="annottext">ppTargets :: [(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="#local-6989586621681006490"><span class="hs-identifier hs-var hs-var">ppTargets</span></a></span></span><span>  </span><span id="local-6989586621681006489"><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006489"><span class="hs-identifier hs-var">xs</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((LlvmVar, LlvmVar) -&gt; SDoc) -&gt; [(LlvmVar, LlvmVar)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmVar, LlvmVar) -&gt; SDoc
</span><a href="#local-6989586621681006493"><span class="hs-identifier hs-var">ppTarget</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006489"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;switch&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006497"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006496"><span class="hs-identifier hs-var">scrut</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006497"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006495"><span class="hs-identifier hs-var">dflt</span></a></span><span>
</span><span id="line-457"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)] -&gt; SDoc
</span><a href="#local-6989586621681006490"><span class="hs-identifier hs-var">ppTargets</span></a></span><span> </span><span class="annot"><span class="annottext">[(LlvmVar, LlvmVar)]
</span><a href="#local-6989586621681006494"><span class="hs-identifier hs-var">targets</span></a></span><span>
</span><span id="line-458"></span><span>
</span><span id="line-459"></span><span>
</span><span id="line-460"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppAsm"><span class="hs-identifier hs-type">ppAsm</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LMString"><span class="hs-identifier hs-type">LMString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LMString"><span class="hs-identifier hs-type">LMString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmType"><span class="hs-identifier hs-type">LlvmType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-461"></span><span id="ppAsm"><span class="annot"><span class="annottext">ppAsm :: LlvmOpts
-&gt; LMString
-&gt; LMString
-&gt; LlvmType
-&gt; [LlvmVar]
-&gt; Bool
-&gt; Bool
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppAsm"><span class="hs-identifier hs-var hs-var">ppAsm</span></a></span></span><span> </span><span id="local-6989586621681006488"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006488"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006487"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006487"><span class="hs-identifier hs-var">asm</span></a></span></span><span> </span><span id="local-6989586621681006486"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006486"><span class="hs-identifier hs-var">constraints</span></a></span></span><span> </span><span id="local-6989586621681006485"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006485"><span class="hs-identifier hs-var">rty</span></a></span></span><span> </span><span id="local-6989586621681006484"><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006484"><span class="hs-identifier hs-var">vars</span></a></span></span><span> </span><span id="local-6989586621681006483"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006483"><span class="hs-identifier hs-var">sideeffect</span></a></span></span><span> </span><span id="local-6989586621681006482"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006482"><span class="hs-identifier hs-var">alignstack</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-462"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006481"><span class="annot"><span class="annottext">asm' :: SDoc
</span><a href="#local-6989586621681006481"><span class="hs-identifier hs-var hs-var">asm'</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006487"><span class="hs-identifier hs-var">asm</span></a></span><span>
</span><span id="line-463"></span><span>      </span><span id="local-6989586621681006480"><span class="annot"><span class="annottext">cons :: SDoc
</span><a href="#local-6989586621681006480"><span class="hs-identifier hs-var hs-var">cons</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006486"><span class="hs-identifier hs-var">constraints</span></a></span><span>
</span><span id="line-464"></span><span>      </span><span id="local-6989586621681006478"><span class="annot"><span class="annottext">rty' :: SDoc
</span><a href="#local-6989586621681006478"><span class="hs-identifier hs-var hs-var">rty'</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006485"><span class="hs-identifier hs-var">rty</span></a></span><span>
</span><span id="line-465"></span><span>      </span><span id="local-6989586621681006476"><span class="annot"><span class="annottext">vars' :: SDoc
</span><a href="#local-6989586621681006476"><span class="hs-identifier hs-var hs-var">vars'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmVar -&gt; SDoc) -&gt; [LlvmVar] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006488"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmVar]
</span><a href="#local-6989586621681006484"><span class="hs-identifier hs-var">vars</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span>
</span><span id="line-466"></span><span>      </span><span id="local-6989586621681006475"><span class="annot"><span class="annottext">side :: SDoc
</span><a href="#local-6989586621681006475"><span class="hs-identifier hs-var hs-var">side</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006483"><span class="hs-identifier hs-var">sideeffect</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sideeffect&quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-467"></span><span>      </span><span id="local-6989586621681006474"><span class="annot"><span class="annottext">align :: SDoc
</span><a href="#local-6989586621681006474"><span class="hs-identifier hs-var hs-var">align</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681006482"><span class="hs-identifier hs-var">alignstack</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;alignstack&quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-468"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;call&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006478"><span class="hs-identifier hs-var">rty'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;asm&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006475"><span class="hs-identifier hs-var">side</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006474"><span class="hs-identifier hs-var">align</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006481"><span class="hs-identifier hs-var">asm'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-469"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006480"><span class="hs-identifier hs-var">cons</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681006476"><span class="hs-identifier hs-var">vars'</span></a></span><span>
</span><span id="line-470"></span><span>
</span><span id="line-471"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppExtract"><span class="hs-identifier hs-type">ppExtract</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-472"></span><span id="ppExtract"><span class="annot"><span class="annottext">ppExtract :: LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppExtract"><span class="hs-identifier hs-var hs-var">ppExtract</span></a></span></span><span> </span><span id="local-6989586621681006473"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006473"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006472"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006472"><span class="hs-identifier hs-var">vec</span></a></span></span><span> </span><span id="local-6989586621681006471"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006471"><span class="hs-identifier hs-var">idx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-473"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;extractelement&quot;</span></span><span>
</span><span id="line-474"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006472"><span class="hs-identifier hs-var">vec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006473"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006472"><span class="hs-identifier hs-var">vec</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-475"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006473"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006471"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-476"></span><span>
</span><span id="line-477"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppExtractV"><span class="hs-identifier hs-type">ppExtractV</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-478"></span><span id="ppExtractV"><span class="annot"><span class="annottext">ppExtractV :: LlvmOpts -&gt; LlvmVar -&gt; Int -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppExtractV"><span class="hs-identifier hs-var hs-var">ppExtractV</span></a></span></span><span> </span><span id="local-6989586621681006470"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006470"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006469"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006469"><span class="hs-identifier hs-var">struct</span></a></span></span><span> </span><span id="local-6989586621681006468"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006468"><span class="hs-identifier hs-var">idx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-479"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;extractvalue&quot;</span></span><span>
</span><span id="line-480"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006469"><span class="hs-identifier hs-var">struct</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006470"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006469"><span class="hs-identifier hs-var">struct</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-481"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681006468"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-482"></span><span>
</span><span id="line-483"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppInsert"><span class="hs-identifier hs-type">ppInsert</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-484"></span><span id="ppInsert"><span class="annot"><span class="annottext">ppInsert :: LlvmOpts -&gt; LlvmVar -&gt; LlvmVar -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppInsert"><span class="hs-identifier hs-var hs-var">ppInsert</span></a></span></span><span> </span><span id="local-6989586621681006467"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006467"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006466"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006466"><span class="hs-identifier hs-var">vec</span></a></span></span><span> </span><span id="local-6989586621681006465"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006465"><span class="hs-identifier hs-var">elt</span></a></span></span><span> </span><span id="local-6989586621681006464"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006464"><span class="hs-identifier hs-var">idx</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-485"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;insertelement&quot;</span></span><span>
</span><span id="line-486"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006466"><span class="hs-identifier hs-var">vec</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006467"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006466"><span class="hs-identifier hs-var">vec</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-487"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006465"><span class="hs-identifier hs-var">elt</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006467"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006465"><span class="hs-identifier hs-var">elt</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-488"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006467"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006464"><span class="hs-identifier hs-var">idx</span></a></span><span>
</span><span id="line-489"></span><span>
</span><span id="line-490"></span><span>
</span><span id="line-491"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMetaStatement"><span class="hs-identifier hs-type">ppMetaStatement</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaAnnot"><span class="hs-identifier hs-type">MetaAnnot</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmStatement"><span class="hs-identifier hs-type">LlvmStatement</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-492"></span><span id="ppMetaStatement"><span class="annot"><span class="annottext">ppMetaStatement :: LlvmOpts -&gt; [MetaAnnot] -&gt; LlvmStatement -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaStatement"><span class="hs-identifier hs-var hs-var">ppMetaStatement</span></a></span></span><span> </span><span id="local-6989586621681006463"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006463"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006462"><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006462"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span id="local-6989586621681006461"><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006461"><span class="hs-identifier hs-var">stmt</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-493"></span><span>   </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatement -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmStatement"><span class="hs-identifier hs-var">ppLlvmStatement</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006463"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatement
</span><a href="#local-6989586621681006461"><span class="hs-identifier hs-var">stmt</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [MetaAnnot] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaAnnots"><span class="hs-identifier hs-var">ppMetaAnnots</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006463"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006462"><span class="hs-identifier hs-var">meta</span></a></span><span>
</span><span id="line-494"></span><span>
</span><span id="line-495"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMetaAnnotExpr"><span class="hs-identifier hs-type">ppMetaAnnotExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaAnnot"><span class="hs-identifier hs-type">MetaAnnot</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Syntax.html#LlvmExpression"><span class="hs-identifier hs-type">LlvmExpression</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-496"></span><span id="ppMetaAnnotExpr"><span class="annot"><span class="annottext">ppMetaAnnotExpr :: LlvmOpts -&gt; [MetaAnnot] -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaAnnotExpr"><span class="hs-identifier hs-var hs-var">ppMetaAnnotExpr</span></a></span></span><span> </span><span id="local-6989586621681006459"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006459"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006458"><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006458"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span id="local-6989586621681006457"><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006457"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-497"></span><span>   </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmExpression -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLlvmExpression"><span class="hs-identifier hs-var">ppLlvmExpression</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006459"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmExpression
</span><a href="#local-6989586621681006457"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; [MetaAnnot] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaAnnots"><span class="hs-identifier hs-var">ppMetaAnnots</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006459"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006458"><span class="hs-identifier hs-var">meta</span></a></span><span>
</span><span id="line-498"></span><span>
</span><span id="line-499"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppMetaAnnots"><span class="hs-identifier hs-type">ppMetaAnnots</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaAnnot"><span class="hs-identifier hs-type">MetaAnnot</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-500"></span><span id="ppMetaAnnots"><span class="annot"><span class="annottext">ppMetaAnnots :: LlvmOpts -&gt; [MetaAnnot] -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaAnnots"><span class="hs-identifier hs-var hs-var">ppMetaAnnots</span></a></span></span><span> </span><span id="local-6989586621681006456"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006456"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006455"><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006455"><span class="hs-identifier hs-var">meta</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(MetaAnnot -&gt; SDoc) -&gt; [MetaAnnot] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">MetaAnnot -&gt; SDoc
</span><a href="#local-6989586621681006454"><span class="hs-identifier hs-var">ppMeta</span></a></span><span> </span><span class="annot"><span class="annottext">[MetaAnnot]
</span><a href="#local-6989586621681006455"><span class="hs-identifier hs-var">meta</span></a></span><span>
</span><span id="line-501"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-502"></span><span>    </span><span id="local-6989586621681006454"><span class="annot"><span class="annottext">ppMeta :: MetaAnnot -&gt; SDoc
</span><a href="#local-6989586621681006454"><span class="hs-identifier hs-var hs-var">ppMeta</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaAnnot"><span class="hs-identifier hs-type">MetaAnnot</span></a></span><span> </span><span id="local-6989586621681006450"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006450"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681006449"><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006449"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-503"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var">exclamation</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006450"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-504"></span><span>          </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006449"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-505"></span><span>            </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaNode"><span class="hs-identifier hs-type">MetaNode</span></a></span><span> </span><span id="local-6989586621681006448"><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006448"><span class="hs-identifier hs-var">n</span></a></span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">MetaId -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">MetaId
</span><a href="#local-6989586621681006448"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-506"></span><span>            </span><span class="annot"><a href="GHC.Llvm.MetaData.html#MetaStruct"><span class="hs-identifier hs-type">MetaStruct</span></a></span><span> </span><span id="local-6989586621681006447"><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006447"><span class="hs-identifier hs-var">ms</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var">exclamation</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(MetaExpr -&gt; SDoc) -&gt; [MetaExpr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var">ppMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006456"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[MetaExpr]
</span><a href="#local-6989586621681006447"><span class="hs-identifier hs-var">ms</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-507"></span><span>            </span><span id="local-6989586621681006446"><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006446"><span class="hs-identifier hs-var">other</span></a></span></span><span>         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var">exclamation</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; MetaExpr -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppMetaExpr"><span class="hs-identifier hs-var">ppMetaExpr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006456"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">MetaExpr
</span><a href="#local-6989586621681006446"><span class="hs-identifier hs-var">other</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- possible?</span><span>
</span><span id="line-508"></span><span>
</span><span id="line-509"></span><span class="hs-comment">-- | Return the variable name or value of the 'LlvmVar'</span><span>
</span><span id="line-510"></span><span class="hs-comment">-- in Llvm IR textual representation (e.g. @\@x@, @%y@ or @42@).</span><span>
</span><span id="line-511"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-type">ppName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-512"></span><span id="ppName"><span class="annot"><span class="annottext">ppName :: LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var hs-var">ppName</span></a></span></span><span> </span><span id="local-6989586621681006445"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006445"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006444"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-513"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobalVar"><span class="hs-identifier hs-type">LMGlobalVar</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'@'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-var">ppPlainName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006445"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-514"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMLocalVar"><span class="hs-identifier hs-type">LMLocalVar</span></a></span><span>  </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-var">ppPlainName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006445"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-515"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMNLocalVar"><span class="hs-identifier hs-type">LMNLocalVar</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-var">ppPlainName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006445"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-516"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-type">LMLitVar</span></a></span><span>    </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span>             </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-var">ppPlainName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006445"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006444"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-517"></span><span>
</span><span id="line-518"></span><span class="hs-comment">-- | Return the variable name or value of the 'LlvmVar'</span><span>
</span><span id="line-519"></span><span class="hs-comment">-- in a plain textual representation (e.g. @x@, @y@ or @42@).</span><span>
</span><span id="line-520"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-type">ppPlainName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-521"></span><span id="ppPlainName"><span class="annot"><span class="annottext">ppPlainName :: LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppPlainName"><span class="hs-identifier hs-var hs-var">ppPlainName</span></a></span></span><span> </span><span id="local-6989586621681006442"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006442"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006441"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006441"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006441"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-522"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMGlobalVar"><span class="hs-identifier hs-type">LMGlobalVar</span></a></span><span> </span><span id="local-6989586621681006440"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006440"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LlvmLinkageType
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMSection
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMAlign
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LMConst
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006440"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-523"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMLocalVar"><span class="hs-identifier hs-type">LMLocalVar</span></a></span><span>  </span><span id="local-6989586621681006439"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006439"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#LMLabel"><span class="hs-identifier hs-var">LMLabel</span></a></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Unique -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006439"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-524"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMLocalVar"><span class="hs-identifier hs-type">LMLocalVar</span></a></span><span>  </span><span id="local-6989586621681006436"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006436"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'l'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681006436"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-525"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMNLocalVar"><span class="hs-identifier hs-type">LMNLocalVar</span></a></span><span> </span><span id="local-6989586621681006435"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006435"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span>        </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006435"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-526"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-type">LMLitVar</span></a></span><span>    </span><span id="local-6989586621681006434"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006434"><span class="hs-identifier hs-var">x</span></a></span></span><span>          </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-var">ppLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006442"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006434"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-527"></span><span>
</span><span id="line-528"></span><span class="hs-comment">-- | Print a literal value. No type.</span><span>
</span><span id="line-529"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-type">ppLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmLit"><span class="hs-identifier hs-type">LlvmLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-530"></span><span id="ppLit"><span class="annot"><span class="annottext">ppLit :: LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-var hs-var">ppLit</span></a></span></span><span> </span><span id="local-6989586621681006433"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006432"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006432"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006432"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-531"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMIntLit"><span class="hs-identifier hs-type">LMIntLit</span></a></span><span> </span><span id="local-6989586621681006431"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006431"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMInt"><span class="hs-identifier hs-type">LMInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">32</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int32 -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Int32
forall a. Num a =&gt; Integer -&gt; a
</span><a href="../../base/src/GHC.Num.html#fromInteger"><span class="hs-identifier hs-var">fromInteger</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006431"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Int.html#Int32"><span class="hs-identifier hs-type">Int32</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-532"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMIntLit"><span class="hs-identifier hs-type">LMIntLit</span></a></span><span> </span><span id="local-6989586621681006429"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006429"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMInt"><span class="hs-identifier hs-type">LMInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">64</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int64 -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Int64
forall a. Num a =&gt; Integer -&gt; a
</span><a href="../../base/src/GHC.Num.html#fromInteger"><span class="hs-identifier hs-var">fromInteger</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006429"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Int.html#Int64"><span class="hs-identifier hs-type">Int64</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-533"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMIntLit"><span class="hs-identifier hs-type">LMIntLit</span></a></span><span>   </span><span id="local-6989586621681006428"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006428"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span>       </span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Int
forall a. Num a =&gt; Integer -&gt; a
</span><a href="../../base/src/GHC.Num.html#fromInteger"><span class="hs-identifier hs-var">fromInteger</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681006428"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span class="hs-glyph">::</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">)</span><span>
</span><span id="line-534"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMFloatLit"><span class="hs-identifier hs-type">LMFloatLit</span></a></span><span> </span><span id="local-6989586621681006426"><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621681006426"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#LMFloat"><span class="hs-identifier hs-var">LMFloat</span></a></span><span> </span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Float -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppFloat"><span class="hs-identifier hs-var">ppFloat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; Platform
</span><a href="GHC.Llvm.Types.html#llvmOptsPlatform"><span class="hs-identifier hs-var hs-var">llvmOptsPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Float -&gt; SDoc) -&gt; Float -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Double -&gt; Float
</span><a href="GHC.Llvm.Types.html#narrowFp"><span class="hs-identifier hs-var">narrowFp</span></a></span><span> </span><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621681006426"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-535"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMFloatLit"><span class="hs-identifier hs-type">LMFloatLit</span></a></span><span> </span><span id="local-6989586621681006422"><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621681006422"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="GHC.Llvm.Types.html#LMDouble"><span class="hs-identifier hs-var">LMDouble</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Double -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppDouble"><span class="hs-identifier hs-var">ppDouble</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; Platform
</span><a href="GHC.Llvm.Types.html#llvmOptsPlatform"><span class="hs-identifier hs-var hs-var">llvmOptsPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Double
</span><a href="#local-6989586621681006422"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-536"></span><span>   </span><span id="local-6989586621681006419"><span class="annot"><span class="annottext">f :: LlvmLit
</span><a href="#local-6989586621681006419"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMFloatLit"><span class="hs-identifier hs-type">LMFloatLit</span></a></span><span> </span><span class="annot"><span class="annottext">Double
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; SDoc
forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ppLit&quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Can't print this float literal: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier hs-var">ppTypeLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006419"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-537"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMVectorLit"><span class="hs-identifier hs-type">LMVectorLit</span></a></span><span> </span><span id="local-6989586621681006417"><span class="annot"><span class="annottext">[LlvmLit]
</span><a href="#local-6989586621681006417"><span class="hs-identifier hs-var">ls</span></a></span></span><span>  </span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&lt;'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmLit -&gt; SDoc) -&gt; [LlvmLit] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier hs-var">ppTypeLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmLit]
</span><a href="#local-6989586621681006417"><span class="hs-identifier hs-var">ls</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span>
</span><span id="line-538"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMNullLit"><span class="hs-identifier hs-type">LMNullLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-special">)</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;null&quot;</span></span><span>
</span><span id="line-539"></span><span>   </span><span class="hs-comment">-- #11487 was an issue where we passed undef for some arguments</span><span>
</span><span id="line-540"></span><span>   </span><span class="hs-comment">-- that were actually live. By chance the registers holding those</span><span>
</span><span id="line-541"></span><span>   </span><span class="hs-comment">-- arguments usually happened to have the right values anyways, but</span><span>
</span><span id="line-542"></span><span>   </span><span class="hs-comment">-- that was not guaranteed. To find such bugs reliably, we set the</span><span>
</span><span id="line-543"></span><span>   </span><span class="hs-comment">-- flag below when validating, which replaces undef literals (at</span><span>
</span><span id="line-544"></span><span>   </span><span class="hs-comment">-- common types) with values that are likely to cause a crash or test</span><span>
</span><span id="line-545"></span><span>   </span><span class="hs-comment">-- failure.</span><span>
</span><span id="line-546"></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Llvm.Types.html#LMUndefLit"><span class="hs-identifier hs-type">LMUndefLit</span></a></span><span> </span><span id="local-6989586621681006415"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006415"><span class="hs-identifier hs-var">t</span></a></span></span><span>    </span><span class="hs-special">)</span><span>
</span><span id="line-547"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; Bool
</span><a href="GHC.Llvm.Types.html#llvmOptsFillUndefWithGarbage"><span class="hs-identifier hs-var hs-var">llvmOptsFillUndefWithGarbage</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span>
</span><span id="line-548"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681006413"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006413"><span class="hs-identifier hs-var">lit</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Maybe LlvmLit
</span><a href="GHC.Llvm.Types.html#garbageLit"><span class="hs-identifier hs-var">garbageLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006415"><span class="hs-identifier hs-var">t</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-var">ppLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006433"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006413"><span class="hs-identifier hs-var">lit</span></a></span><span>
</span><span id="line-549"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;undef&quot;</span></span><span>
</span><span id="line-550"></span><span>
</span><span id="line-551"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-type">ppVar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-552"></span><span id="ppVar"><span class="annot"><span class="annottext">ppVar :: LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var hs-var">ppVar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar%27"><span class="hs-identifier hs-var">ppVar'</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-553"></span><span>
</span><span id="line-554"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppVar%27"><span class="hs-identifier hs-type">ppVar'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmParamAttr"><span class="hs-identifier hs-type">LlvmParamAttr</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmVar"><span class="hs-identifier hs-type">LlvmVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-555"></span><span id="ppVar%27"><span class="annot"><span class="annottext">ppVar' :: [LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar%27"><span class="hs-identifier hs-var hs-var">ppVar'</span></a></span></span><span> </span><span id="local-6989586621681006411"><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006411"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span id="local-6989586621681006410"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006410"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006409"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006409"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006409"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-556"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMLitVar"><span class="hs-identifier hs-type">LMLitVar</span></a></span><span> </span><span id="local-6989586621681006408"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006408"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit%27"><span class="hs-identifier hs-var">ppTypeLit'</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006411"><span class="hs-identifier hs-var">attrs</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006410"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006408"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-557"></span><span>  </span><span id="local-6989586621681006406"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006406"><span class="hs-identifier hs-var">x</span></a></span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006406"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006411"><span class="hs-identifier hs-var">attrs</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppName"><span class="hs-identifier hs-var">ppName</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006410"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006406"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-558"></span><span>
</span><span id="line-559"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier hs-type">ppTypeLit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmLit"><span class="hs-identifier hs-type">LlvmLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-560"></span><span id="ppTypeLit"><span class="annot"><span class="annottext">ppTypeLit :: LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier hs-var hs-var">ppTypeLit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit%27"><span class="hs-identifier hs-var">ppTypeLit'</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-561"></span><span>
</span><span id="line-562"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppTypeLit%27"><span class="hs-identifier hs-type">ppTypeLit'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmParamAttr"><span class="hs-identifier hs-type">LlvmParamAttr</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmLit"><span class="hs-identifier hs-type">LlvmLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-563"></span><span id="ppTypeLit%27"><span class="annot"><span class="annottext">ppTypeLit' :: [LlvmParamAttr] -&gt; LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit%27"><span class="hs-identifier hs-var hs-var">ppTypeLit'</span></a></span></span><span> </span><span id="local-6989586621681006405"><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006405"><span class="hs-identifier hs-var">attrs</span></a></span></span><span> </span><span id="local-6989586621681006404"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006404"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006403"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006403"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006403"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-564"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMVectorLit"><span class="hs-identifier hs-type">LMVectorLit</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-var">ppLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006404"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006403"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-565"></span><span>  </span><span class="annot"><span class="annottext">LlvmLit
</span><span class="hs-identifier">_</span></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmLit -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getLitType"><span class="hs-identifier hs-var">getLitType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006403"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppSpaceJoin"><span class="hs-identifier hs-var">ppSpaceJoin</span></a></span><span> </span><span class="annot"><span class="annottext">[LlvmParamAttr]
</span><a href="#local-6989586621681006405"><span class="hs-identifier hs-var">attrs</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppLit"><span class="hs-identifier hs-var">ppLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006404"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006403"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-566"></span><span>
</span><span id="line-567"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-type">ppStatic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmStatic"><span class="hs-identifier hs-type">LlvmStatic</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-568"></span><span id="ppStatic"><span class="annot"><span class="annottext">ppStatic :: LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var hs-var">ppStatic</span></a></span></span><span> </span><span id="local-6989586621681006401"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006400"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006400"><span class="hs-identifier hs-var">st</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006400"><span class="hs-identifier hs-var">st</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-569"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMComment"><span class="hs-identifier hs-type">LMComment</span></a></span><span>       </span><span id="local-6989586621681006398"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006398"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;; &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006398"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-570"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticLit"><span class="hs-identifier hs-type">LMStaticLit</span></a></span><span>   </span><span id="local-6989586621681006396"><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006396"><span class="hs-identifier hs-var">l</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmLit -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppTypeLit"><span class="hs-identifier hs-var">ppTypeLit</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmLit
</span><a href="#local-6989586621681006396"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-571"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMUninitType"><span class="hs-identifier hs-type">LMUninitType</span></a></span><span>    </span><span id="local-6989586621681006394"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006394"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006394"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; undef&quot;</span></span><span>
</span><span id="line-572"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticStr"><span class="hs-identifier hs-type">LMStaticStr</span></a></span><span>   </span><span id="local-6989586621681006392"><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006392"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621681006391"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006391"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006391"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; c\&quot;&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LMString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">LMString
</span><a href="#local-6989586621681006392"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\00\&quot;&quot;</span></span><span>
</span><span id="line-573"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticArray"><span class="hs-identifier hs-type">LMStaticArray</span></a></span><span> </span><span id="local-6989586621681006389"><span class="annot"><span class="annottext">[LlvmStatic]
</span><a href="#local-6989586621681006389"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621681006388"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006388"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006388"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; [&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmStatic -&gt; SDoc) -&gt; [LlvmStatic] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmStatic]
</span><a href="#local-6989586621681006389"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">']'</span></span><span>
</span><span id="line-574"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticStruc"><span class="hs-identifier hs-type">LMStaticStruc</span></a></span><span> </span><span id="local-6989586621681006386"><span class="annot"><span class="annottext">[LlvmStatic]
</span><a href="#local-6989586621681006386"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621681006385"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006385"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006385"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;{&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
forall a. Outputable a =&gt; [a] -&gt; SDoc
</span><a href="GHC.Llvm.Types.html#ppCommaJoin"><span class="hs-identifier hs-var">ppCommaJoin</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(LlvmStatic -&gt; SDoc) -&gt; [LlvmStatic] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[LlvmStatic]
</span><a href="#local-6989586621681006386"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;}&gt;&quot;</span></span><span>
</span><span id="line-575"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticPointer"><span class="hs-identifier hs-type">LMStaticPointer</span></a></span><span> </span><span id="local-6989586621681006383"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006383"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmVar -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppVar"><span class="hs-identifier hs-var">ppVar</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006383"><span class="hs-identifier hs-var">v</span></a></span><span>
</span><span id="line-576"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMTrunc"><span class="hs-identifier hs-type">LMTrunc</span></a></span><span> </span><span id="local-6989586621681006381"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006381"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621681006380"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006380"><span class="hs-identifier hs-var">t</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006380"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; trunc (&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006381"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; to &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006380"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span>
</span><span id="line-577"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMBitc"><span class="hs-identifier hs-type">LMBitc</span></a></span><span> </span><span id="local-6989586621681006378"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006378"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621681006377"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006377"><span class="hs-identifier hs-var">t</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006377"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; bitcast (&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006378"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; to &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006377"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span>
</span><span id="line-578"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMPtoI"><span class="hs-identifier hs-type">LMPtoI</span></a></span><span> </span><span id="local-6989586621681006375"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006375"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621681006374"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006374"><span class="hs-identifier hs-var">t</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006374"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; ptrtoint (&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006375"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; to &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006374"><span class="hs-identifier hs-var">t</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span>
</span><span id="line-579"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMAdd"><span class="hs-identifier hs-type">LMAdd</span></a></span><span> </span><span id="local-6989586621681006372"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006372"><span class="hs-identifier hs-var">s1</span></a></span></span><span> </span><span id="local-6989586621681006371"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006371"><span class="hs-identifier hs-var">s2</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmStatic
-&gt; LlvmStatic
-&gt; PtrString
-&gt; PtrString
-&gt; String
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#pprStaticArith"><span class="hs-identifier hs-var">pprStaticArith</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006372"><span class="hs-identifier hs-var">s1</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006371"><span class="hs-identifier hs-var">s2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fadd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;LMAdd&quot;</span></span><span>
</span><span id="line-580"></span><span>  </span><span class="annot"><a href="GHC.Llvm.Types.html#LMSub"><span class="hs-identifier hs-type">LMSub</span></a></span><span> </span><span id="local-6989586621681006368"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006368"><span class="hs-identifier hs-var">s1</span></a></span></span><span> </span><span id="local-6989586621681006367"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006367"><span class="hs-identifier hs-var">s2</span></a></span></span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts
-&gt; LlvmStatic
-&gt; LlvmStatic
-&gt; PtrString
-&gt; PtrString
-&gt; String
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#pprStaticArith"><span class="hs-identifier hs-var">pprStaticArith</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006401"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006368"><span class="hs-identifier hs-var">s1</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006367"><span class="hs-identifier hs-var">s2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sub&quot;</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fsub&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;LMSub&quot;</span></span><span>
</span><span id="line-581"></span><span>
</span><span id="line-582"></span><span>
</span><span id="line-583"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#pprSpecialStatic"><span class="hs-identifier hs-type">pprSpecialStatic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmStatic"><span class="hs-identifier hs-type">LlvmStatic</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-584"></span><span id="pprSpecialStatic"><span class="annot"><span class="annottext">pprSpecialStatic :: LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#pprSpecialStatic"><span class="hs-identifier hs-var hs-var">pprSpecialStatic</span></a></span></span><span> </span><span id="local-6989586621681006366"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006366"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006365"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006365"><span class="hs-identifier hs-var">stat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006365"><span class="hs-identifier hs-var">stat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-585"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMBitc"><span class="hs-identifier hs-type">LMBitc</span></a></span><span> </span><span id="local-6989586621681006364"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006364"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span id="local-6989586621681006363"><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006363"><span class="hs-identifier hs-var">t</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006363"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-586"></span><span>                        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, bitcast (&quot;</span></span><span>
</span><span id="line-587"></span><span>                        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006366"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006364"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; to &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006363"><span class="hs-identifier hs-var">t</span></a></span><span>
</span><span id="line-588"></span><span>                        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span>
</span><span id="line-589"></span><span>   </span><span class="annot"><a href="GHC.Llvm.Types.html#LMStaticPointer"><span class="hs-identifier hs-type">LMStaticPointer</span></a></span><span> </span><span id="local-6989586621681006362"><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006362"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#pLower"><span class="hs-identifier hs-var">pLower</span></a></span><span> </span><span class="annot"><span class="annottext">(LlvmType -&gt; LlvmType) -&gt; LlvmType -&gt; LlvmType
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getVarType"><span class="hs-identifier hs-var">getVarType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmVar
</span><a href="#local-6989586621681006362"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-590"></span><span>                        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006366"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006365"><span class="hs-identifier hs-var">stat</span></a></span><span>
</span><span id="line-591"></span><span>   </span><span class="annot"><span class="annottext">LlvmStatic
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006366"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006365"><span class="hs-identifier hs-var">stat</span></a></span><span>
</span><span id="line-592"></span><span>
</span><span id="line-593"></span><span>
</span><span id="line-594"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#pprStaticArith"><span class="hs-identifier hs-type">pprStaticArith</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmOpts"><span class="hs-identifier hs-type">LlvmOpts</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmStatic"><span class="hs-identifier hs-type">LlvmStatic</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Llvm.Types.html#LlvmStatic"><span class="hs-identifier hs-type">LlvmStatic</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span>
</span><span id="line-595"></span><span>                  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-596"></span><span id="pprStaticArith"><span class="annot"><span class="annottext">pprStaticArith :: LlvmOpts
-&gt; LlvmStatic
-&gt; LlvmStatic
-&gt; PtrString
-&gt; PtrString
-&gt; String
-&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#pprStaticArith"><span class="hs-identifier hs-var hs-var">pprStaticArith</span></a></span></span><span> </span><span id="local-6989586621681006361"><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006361"><span class="hs-identifier hs-var">opts</span></a></span></span><span> </span><span id="local-6989586621681006360"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006360"><span class="hs-identifier hs-var">s1</span></a></span></span><span> </span><span id="local-6989586621681006359"><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006359"><span class="hs-identifier hs-var">s2</span></a></span></span><span> </span><span id="local-6989586621681006358"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006358"><span class="hs-identifier hs-var">int_op</span></a></span></span><span> </span><span id="local-6989586621681006357"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006357"><span class="hs-identifier hs-var">float_op</span></a></span></span><span> </span><span id="local-6989586621681006356"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681006356"><span class="hs-identifier hs-var">op_name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-597"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681006355"><span class="annot"><span class="annottext">ty1 :: LlvmType
</span><a href="#local-6989586621681006355"><span class="hs-identifier hs-var hs-var">ty1</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">LlvmStatic -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getStatType"><span class="hs-identifier hs-var">getStatType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006360"><span class="hs-identifier hs-var">s1</span></a></span><span>
</span><span id="line-598"></span><span>      </span><span id="local-6989586621681006353"><span class="annot"><span class="annottext">op :: PtrString
</span><a href="#local-6989586621681006353"><span class="hs-identifier hs-var hs-var">op</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; Bool
</span><a href="GHC.Llvm.Types.html#isFloat"><span class="hs-identifier hs-var">isFloat</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006355"><span class="hs-identifier hs-var">ty1</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006357"><span class="hs-identifier hs-var">float_op</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006358"><span class="hs-identifier hs-var">int_op</span></a></span><span>
</span><span id="line-599"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006355"><span class="hs-identifier hs-var">ty1</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; LlvmType -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">LlvmStatic -&gt; LlvmType
</span><a href="GHC.Llvm.Types.html#getStatType"><span class="hs-identifier hs-var">getStatType</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006359"><span class="hs-identifier hs-var">s2</span></a></span><span>
</span><span id="line-600"></span><span>     </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">LlvmType -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmType
</span><a href="#local-6989586621681006355"><span class="hs-identifier hs-var">ty1</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681006353"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006361"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006360"><span class="hs-identifier hs-var">s1</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006361"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006359"><span class="hs-identifier hs-var">s2</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span>
</span><span id="line-601"></span><span>     </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc -&gt; SDoc
forall a. HasCallStack =&gt; String -&gt; SDoc -&gt; a
</span><a href="GHC.Utils.Outputable.html#pprPanic"><span class="hs-identifier hs-var">pprPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pprStaticArith&quot;</span></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-602"></span><span>            </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681006356"><span class="hs-identifier hs-var">op_name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; with different types! s1: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006361"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006360"><span class="hs-identifier hs-var">s1</span></a></span><span>
</span><span id="line-603"></span><span>                         </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, s2: &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts -&gt; LlvmStatic -&gt; SDoc
</span><a href="GHC.Llvm.Ppr.html#ppStatic"><span class="hs-identifier hs-var">ppStatic</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmOpts
</span><a href="#local-6989586621681006361"><span class="hs-identifier hs-var">opts</span></a></span><span> </span><span class="annot"><span class="annottext">LlvmStatic
</span><a href="#local-6989586621681006359"><span class="hs-identifier hs-var">s2</span></a></span><span>
</span><span id="line-604"></span><span>
</span><span id="line-605"></span><span>
</span><span id="line-606"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-607"></span><span class="hs-comment">-- * Misc functions</span><span>
</span><span id="line-608"></span><span class="hs-comment">--------------------------------------------------------------------------------</span><span>
</span><span id="line-609"></span><span>
</span><span id="line-610"></span><span class="hs-comment">-- | Blank line.</span><span>
</span><span id="line-611"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-type">newLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-612"></span><span id="newLine"><span class="annot"><span class="annottext">newLine :: SDoc
</span><a href="GHC.Llvm.Ppr.html#newLine"><span class="hs-identifier hs-var hs-var">newLine</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-613"></span><span>
</span><span id="line-614"></span><span class="hs-comment">-- | Exclamation point.</span><span>
</span><span id="line-615"></span><span class="annot"><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-type">exclamation</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-616"></span><span id="exclamation"><span class="annot"><span class="annottext">exclamation :: SDoc
</span><a href="GHC.Llvm.Ppr.html#exclamation"><span class="hs-identifier hs-var hs-var">exclamation</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'!'</span></span><span>
</span><span id="line-617"></span></pre></body></html>